2011-10-12 35 views
3

因此,我需要在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"} 

回答

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(與expect一樣),並在最後將響應腳本告知exp_continue,以便它始終保持交互/期待。

相關問題