我有一個期望的腳本我用ssh。我的一些主機會提示使用RSA主機密鑰文本,有些則不會。我如何設置我的腳本爲一個如果/然後在預期。這是我到目前爲止。如果然後邏輯裏面預期的腳本
#!/usr/bin/expect -f
set ipaddress [lindex $argv 0];
spawn ssh [email protected]$ipaddress
expect "Are you sure you want to continue connecting (yes/no)?"
send "yes\r"
expect "[email protected]$ipaddress's password:"
send "password\r"
set prompt {\$ $}
expect -re $prompt
send "$command\r"
expect -re $prompt
send "quit\r"
interact
我需要建立在該部分的if/then邏輯是以下兩行:
expect "Are you sure you want to continue connecting (yes/no)?"
send "yes\r"
的邏輯流程將是:
if expect "Are you sure you want to continue connecting (yes/no)?"
then send "yes\r"
else
expect "[email protected]$ipaddress's password:"
etc..
我怎樣才能做到這一點?
你在錯誤的地方得到了'exp_continue':它應該在「你確定」塊中。因爲在這兩種情況下你都必須輸入密碼。 –
更新我的答案以反映您的建議。自從移動exp_continue之後,我還沒有遇到過單一故障,所以看起來你是正確的。 – user53029