所以我需要在我的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"}
答案 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
,以便它继续相互作用/期待。