0

sttyエコーラインを削除してもすべてを試しましたが、ユーザーがパスワードを入力した後、パスワードが一瞬表示されます。タイムアウトの問題を考えているので、無駄な試行であらゆる種類のタイムアウト値を試しています。

set timeout 30
stty -echo
send_user -- "Password for $username :"
expect_user -re "(.*)\n"
set timeout .000000001
set timeout 30
send_user "\n"
set timeout 30
set password $expect_out(1,string)
send -- "$password\r"

これをどのように処理できるのか、その理由は何でしょうか。

4

1 に答える 1

2

私はあなたのコードを試してみましたが、うまくいきました。のどのバージョンをExpect使用していますか?
ちなみに、私は通常、次のように書いています。

stty -echo
send_user "Password: "
expect_user -timeout 3600 -re "(.*)\n"
stty echo
send_user "\r\n"
set passwd "$expect_out(1,string)"
于 2013-03-14T01:54:33.017 に答える