例子:
#!/bin/bash
/usr/bin/expect <<-EOF
log_file test
spawn ssh 172.16.4.120
send "ls\r"
expect eof
send "df\r"
expect eof
exit
EOF
执行后就屏幕输出将会都保存在当前目录的test文件
然后awk sed 该文件,想干嘛就干嘛
另外要注意的一点是该脚本没有用到expect 再send的形式,颠覆了我一贯的认识,原来可以直接send 的
设置expect永不超时
set timeout -1
设置expect 300秒超时,如果超过300没有expect内容出现,则退出
set timeout 300
假设脚本设置了set timeout -1
然后又没有写expect语句,只有send语句的话,那么脚本就会一直在等
例如:
#!/bin/bash
/usr/bin/expect <<-EOF
set timeout -1
spawn ssh 172.16.4.120
send "ls\r"
expect eof -----脚本执行到这后会一直等待,假如timeout 为5,则等5秒后再执行后面的语句。
send "df\r"
expect eof
exit
EOF