expect的模式

expect的模式其实就是对话模式:

 

expect    # 期望什么

send      # 我给你什么

 

比如:

expect "password: "    # 碰到什么了

send "123456"          # 我给你什么

 

expect有一个默认的超时时间,如果得不到你的输入,(expect期望的字符串),它就会直接执行后面的步骤。

 

#!/usr/bin/expect

set timeout 30

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将无效,登录后立即退回到本地主机;只有加了,才会打印远程主机的主机名,然后再退出到本地主机。

 

posted @ 2019-10-21 11:53  道霖  阅读(238)  评论(0编辑  收藏  举报