2012-09-20 100 views
0

我想自動執行命令ssh-keygen -t rsa。唯一的是該命令將在不同的條件下打印出不同的文本。例如,如果是第一次,它將輸出enter passphraseenter passphrase again。否則,會提示Overwrite (y/n):。如何在expect中處理此問題。使用期望自動化ssh密鑰對生成

我一直在使用模式的動作對他像

期望 「輸入密碼」{發送 「\ r」} \

"Overwrite (y/n): " {send "n\r"} 

但是,它只能處理一個提示在時間;我如何處理提示enter passphrase again

回答

1

使用exp_continue可以幫助您與此:

expect { 
    "Overwrite (y/n)?" { send "n\r" ; exp_coninue } 
    "Enter passphrase" { send "\r" ; exp_coninue } 
    "passphrase again:" { send "\r" } 
}