expect的模式其实就是对话模式:ssh
expect # 指望什么spa
send # 我给你什么字符串
好比:test
expect "password: " # 碰到什么了登录
send "123456" # 我给你什么im
expect有一个默认的超时时间,若是得不到你的输入,(expect指望的字符串),它就会直接执行后面的步骤。word
#!/usr/bin/expect时间
set timeout 30co
spawn ssh test@127.0.0.1字符
expect "password:"
send "123456\n"
interact
# interact命令能够让咱们停留在远程主机上,若是没有这一句,登陆后会当即退出,而不是停留在远程主机。
#!/usr/bin/expect
set timeout 30
spawn ssh root@127.0.0.1 "hostname"
expect "password:"
send "123456\n"
expect eof
# 若是不加这一句,上面的hostname将无效,登陆后当即退回到本地主机;只有加了,才会打印远程主机的主机名,而后再退出到本地主机。