+ -
当前位置:首页 → 问答吧 → while read line的循环中 read a 不起作用啊

while read line的循环中 read a 不起作用啊

时间:2011-07-05

来源:互联网

我这里经常要用ssh登录其它电脑,帐号密码是一样的,我只需要输入主机名作为传入参数就可以自动为我完成yes,密码的输入
参考了下
http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=330208&hilit=ssh+%E8%87%AA%E5%8A%A8+%E5%AF%86%E7%A0%81
这个帖子,写不出来。。。唉

作者: baby   发布时间: 2011-07-05

#!/usr/bin/expect

set timeout 60

spawn /usr/bin/ssh -D 7070 [email protected]
#这里的 username 为你自己的用户名,yourserver.com 为你自己的服务器域名或ip

expect {
"password:" {
send "password\r"
#将第二个 password 改为你自己的密码
}
}

interact {
timeout 60 { send " "}
}

作者: qifei9   发布时间: 2011-07-05

谢谢,可以登录了
怎么可以改成传入主机名作为参数阿
代码:
例如我保存为 autossh.sh
执行autossh.sh  abc.com 来实现自动登录


该死,shell的语法都忘记了

作者: baby   发布时间: 2011-07-05

谢谢二楼的兄弟,参考了另外一个帖子,弄出来了
代码:
#!/usr/bin/expect -f

set timeout -1
set server  [lindex $argv 0]
spawn ssh -l user $server
expect {
    "(yes/no)" { send "yes\r"; exp_continue }
    "assword:" { send "password\r"; }
}
expect "*Last login*" interact

作者: baby   发布时间: 2011-07-05