2017-01-04 1 views
0

Expectを使用してスクリプトを処理すると、出力が奇妙になります。ここに私のスクリプトです:それからExpect関数が奇妙に動作する

#!/usr/bin/expect 
cd ~/Downloads/ 
spawn /usr/sbin/program 
expect "Enter Username: " 
send "username\r" 
expect "Enter Password: " 
send "password\r" 

私の標準出力は次のようになります。

は、ユーザー名を入力します。

ユーザ名をユーザ名

は、パスワードを入力します:ホームの@ Debianを使用します。/ home/Debianの#

私のプログラムを終了します。通常、間違ったパスワードを入力した場合は、もう一度入力を求められます。私はなぜそれが "username"を二度印刷したのかについても混乱しています。

+0

私はこれを試すことをお勧めします: 'echo -e" username \ npassword "|/usr/sbin/program' – Cyrus

+0

[よくある質問とその理由:同じ文字列を2回返すのはなぜですか?](http://expect.sourceforge.net/FAQ.html#q52) – Cyrus

+0

これはうまくいかなかったため、それは私の端末を凍らせた – sullivnc

答えて

0

プログラムがちょうど最後にこれを追加し、パスワードを入力した後、完了まで実行することを意図されている場合:

expect eof 

生成されたプロセスが終了すると閉じるまで待たなければなりません。

関連する問題