【发布时间】:2013-05-22 22:26:02
【问题描述】:
我正在尝试让一个期望脚本通过 ssh 进入远程系统,并获取远程命令的输出。 我希望在本地提供该输出。 例如,ssh 进入系统并获取本地时间输出:
#!/usr/bin/expect --
set timeout 60
spawn ssh user@server.domain.com
expect {
timeout {puts "timed out after $timeout seconds"; exit}
"Password:"
}
send "SuperSecretPassword\r"
expect "user$ "
send "date\r"
expect "date"
expect "\r"
set buffer1 '$expect_out(buffer)'
expect "\r"
set buffer2 '$expect_out(buffer)'
send "exit\r"
expect eof
set buffer3 '$expect_out(buffer)'
exit
export VARIABLE $buffer1
export VARIABLE $buffer2
export VARIABLE $buffer3
echo "Okay, we are done expecting..."
echo "Buffer1: $buffer1"
echo "Buffer2: $buffer2"
echo "Buffer3: $buffer3"
上面的当然不行,实际上脚本执行在expect“exit”之后就结束了
【问题讨论】: