如何自动完成选择?

为当前最终发行版之前的所有版本提供支持
回复
oooo
帖子: 10
注册时间: 2008-07-28 16:43
送出感谢: 0
接收感谢: 0

如何自动完成选择?

#1

帖子 oooo » 2008-07-28 16:48

请问如何能在终端下输入命令后,自动完成选项,
就是说如果输入的命令会提示选择1),2),3) ,我该怎么能在输入命令时就确定选项2)呢?
oooo
帖子: 10
注册时间: 2008-07-28 16:43
送出感谢: 0
接收感谢: 0

#2

帖子 oooo » 2008-07-28 17:27

这个问题顶一下
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

#3

帖子 bones7456 » 2008-07-28 17:29

也许你需要expect
关注我的blog: ε==3
oooo
帖子: 10
注册时间: 2008-07-28 16:43
送出感谢: 0
接收感谢: 0

#4

帖子 oooo » 2008-07-28 18:33

刚装上expect,不过脚本好像不怎么好写啊,
研究一下了得。
oooo
帖子: 10
注册时间: 2008-07-28 16:43
送出感谢: 0
接收感谢: 0

#5

帖子 oooo » 2008-07-28 20:09

请问要是需要root权限的命令该怎么办呢,还没等输入密码呢就跳过去了,
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

#6

帖子 bones7456 » 2008-07-29 9:21

密码也可以用expect来send的
关注我的blog: ε==3
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#7

帖子 eexpress » 2008-07-29 9:28

估计你们把问题搞复杂了。

说不定命令带好了参数的。

代码: 全选

☎  cat expect-演示脚本 
#!/opt/sfw/bin/expect
set timeout 10 
spawn su - 
expect "Password:*" 
send "密码r" 
expect "bash-2.03#*" 
send "df -kr" 
expect "bash-2.03#*" 
send "exitr" 
close 
wait bash-2.03$ 
chmod 755 runexpect 
bash-2.03$ runexpect 
spawn su - Password: bash-2.03# 
df -k Filesystem kbytes used avail capacity Mounted on /dev/dsk/c0d0s0 4639574 2897740 1695439 64% / /proc 0 0 0 0% /proc fd 0 0 0 0% /dev/fd mnttab 0 0 0 0% /etc/mnttab swap 580368 8 580360 1% /var/run swap 580676 316 580360 1% /tmp bash-2.03# 
exit bash-2.03$

==========================================
#!/usr/local/bin/expect
set f [open ur_ip_passwd_file r]
set timeout 150
while {[gets $f line] >= 0} {
spawn ssh [lindex $line 0]
expect "user: "
sleep .1
send "root\r"
expect "assword: "
send "[lindex $line 0]\r"
expect -re {[$#] }
send "shutdown\r"
expect eof
close
}
close $f
==========================================
● 鸣学
小小棉花
帖子: 4
注册时间: 2008-07-29 10:07
送出感谢: 0
接收感谢: 0

#8

帖子 小小棉花 » 2008-07-29 10:10

:oops: 看下
oooo
帖子: 10
注册时间: 2008-07-28 16:43
送出感谢: 0
接收感谢: 0

#9

帖子 oooo » 2008-07-29 19:17

请问:send "[lindex $line 0]\r"
这条语句是什么意思啊,怎么能把密码发送上去呢,
另外这个要是运行在别的机器上,不会知道密码就没办法运行了吧?
zyjisdog
帖子: 18
注册时间: 2008-07-14 13:38
送出感谢: 0
接收感谢: 0

#10

帖子 zyjisdog » 2008-07-29 19:33

搞不懂...
oooo
帖子: 10
注册时间: 2008-07-28 16:43
送出感谢: 0
接收感谢: 0

#11

帖子 oooo » 2008-07-29 20:03

是啊,研究了半天了,那些例子都是自动填充密码的,好像是把密码当成参数运行,
那要是运行在别的机器上就不能自动填充了啊?
oooo
帖子: 10
注册时间: 2008-07-28 16:43
送出感谢: 0
接收感谢: 0

#12

帖子 oooo » 2008-07-30 8:56

:(
回复

回到 “老旧版本支持”