期待/发送问题

问题描述

目前,我正在编写一个自动化流程的脚本,在这一点上,我的脚本简短而简单,但我在使用 expect/send 时遇到了一些问题。

代码

#!/usr/bin/expect -f
#!/bin/bash

set ip ***
set ip2 ***
set user ***
set usr2 ***
set OTP [lindex $argv 0]
spawn ssh "usr@$ip";
expect "OTP Password:"
send -- "$OTP"
interact
expect "prompt >"
send -- "ssh usr2@$ip2"
interact

对于这一点,脚本在 first ssh 之前一直有效,但是......对于 second ssh (expect "prompt >" / send -- "ssh $ip2") 它不起作用......我不明白为什么。我已经尝试了一些命令,如 expect eofwaittimeout,但我也没有检查过希望版本是最新的(5.45)。

你有什么想法吗?谢谢!

解决方法

您的 spawn 对我来说看起来不错,但是在 send 中,您忘记发送回车,这实际上终止了命令:

send -- "$OTP\r"