linux 使用 expect 自动登录

Posted on Posted in command

脚本实例

$ cat login.exp
#!/usr/bin/expect
set timeout 3 # 设置超时
spawn ssh pi@10.8.0.50 # 启动一个进程,以便进行下面的匹配操作
expect { # 多个联合匹配
    "yes/no" {exp_send "yes\r";exp_continue} # 匹配到yes/no的时候,发送yes,exp_continue 
# 就是从头开始偏历,也就是说如果没有这个命令,匹配第一个关键字以后就会继续匹配第二关键字,但有了这个命令后,匹配第一个关键字以后,第二次匹配依然从第一个关键字开始
    "*password:" {exp_send "liuhonghe\r"}
}
expect "*raspberrypi*" { send "pwd\r" } # 单个匹配
interact # 停留在用户交互界面

把 expect 写到 bash 中

#!/bin/bash
passwd="abcdefg"
/usr/bin/expect <<EOF
spawn ssh root@192.168.22.194
expect {
#"*yes/no" {send "yes\r";exp_continue}
"*password:" {send "$passwd\r"}
}
interact
expect eof
EOF
» 转载请注明来源:呢喃 » linux 使用 expect 自动登录

Leave a Reply

Your email address will not be published. Required fields are marked *

six − 4 =