質問
私はアプリケーションを実行しています。これにより、ユーザーのパスワードが約12回プロンプトされます:-(この問題を回避するために期待を使用して、自動モードで実行しましたが、複数回の問題を乗り越えることができませんパスワード。これは正確に静的ではありません。4~5回尋ねられることもあれば、9~10回ほど尋ねられることもあります。
私が以下に挙げたものよりも良い問題の解決策はありますか?
spawn myApp [lindex $argv 0]
expect " password: $"
send "$password\r"
expect {
" password: $" send "$password\r"
"^Rollout Done "
"^Rollout Updated "
}
上記の解決策では、パスワードを 2 回しか取得できず、残りの時間は手動で入力を開始できました。パスワードでループが発生する可能性はありますか?
解決
調べてください exp_Continue コマンド -- それは電流を防ぎます [expect]
コマンドが戻らないようにすることで、後続のパスワード プロンプトを検出できるようになります。
spawn myApp [lindex $argv 0]
expect {
-re { password: $} {
send "$password\r"
exp_continue
}
-re {^Rollout (?:Done|Updated) }
}
パスワードをスクリプトにプレーンテキストで保存するのではなく、ユーザーに入力してもらいたい場合は、次を参照してください。 期待スクリプトでパスワードの入力を求めるようにするにはどうすればよいですか?
他のヒント
ループを使用することができます期待 - それは私が信じているいくつかの追加コマンドでちょうどTCLです。だからやる。
set found 0
while {$found < 1}
{
expect {
" password: $" send "$password\r"
"^Rollout Done " set found 1
"^Rollout Updated " set found 1
}
}
所属していません StackOverflow