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將無效,登陸後當即退回到本地主機;只有加了,纔會打印遠程主機的主機名,而後再退出到本地主機。