有时在使用expect脚本进行ssh登录到远程主机执行命令时需要保存回显为日志文件,这里总结三种方式
1. $expect_out(buffer)
这种方式需要注意不能在shell嵌套expect的情况下使用,因为在这种情况下expect脚本中的$xx
变量会被解析成shell部分传入的参数,无法起到原本在expect脚本下的作用。
其次,$expect_out(buffer)
需要和send
内容在两个不同的expect循环中出现。
#!/bin/expect
set user "root"
set host "10.25.103.2"
set loginpass "eve"
spawn ssh -p 23 $user@$host
set timeout 30
set ofile "info_$host" # 在本地创建日志
set output [open $ofile "w"] # 打开日志,准备写入
expect {
-re "Are