有没有办法在“互动”命令后“期待”和“发送”

时间:2011-10-12 08:34:36

标签: linux shell tcl expect

所以我需要在我的stdout上输出远程进程,但我还需要能够“监听”它,并在匹配我的关键字后发送命令。

我需要这样的东西(我知道这段代码不正确,它的唯一目的是说明我需要的东西)

#!/usr/bin/expect
log_user 0
spawn ssh -o PubkeyAuthentication=no [lindex $argv 0] -n [lindex $argv 1]
expect "Password:" {send "mypassword\r"}
interact
expect "mykeyword" {send "\003\177\015"}

1 个答案:

答案 0 :(得分:7)

如果我没记错的话,你可以这样做:

#!/usr/bin/expect
log_user 0
spawn ssh -o PubkeyAuthentication=no [lindex $argv 0] -n [lindex $argv 1]
expect "Password:" {send "mypassword\r"}
interact {
     "mykeyword" {
         send "\003\177\015"
         exp_continue
     }
}

您将需要注意的事项和作为interact的参数的操作传递给({1}}),并且最后将响应脚本告诉expect,以便它继续相互作用/期待。