こんにちは、みんな
私はこれらの奇妙なことの原因を見つけました。それはコマンドです:「待機」を送信します
私はそれをテストするためにいくつかのスクリプトを書きました。
proc Login {pass} {
# send the password
}
proc Wait {} {
expect "*]$*"
sleep 1
}
proc sendl {message} {
send "$message\r"
}
spawn ssh xxxxx.xxx.xxx
Login xxxxxxxx
Wait
sendl "cd /somepath/"
Wait
sendl "expect infiniteLoop.exp >/dev/null &"
Wait
***sendl "wait"***
Wait
sendl "TESTTEST"
Wait
sendl "HAHAHA"
Wait
sendl "DONEDONEDONE"
Wait
次の行の後にスタックする必要があります:sendl "wait"
しかし、結果は次のとおりです。
[xxx@xxxxx.xxx ~]$ cd /somepath/
[xxx@xxxxx.xxx folder]$ expect infiniteLoop.exp >/dev/null &
[1] 27260
[xxx@xxxxx.xxx folder]$ wait
TESTTEST
HAHAHA
DONEDONEDONE
[xxx@xxxxx.xxx folder]$
シェルはまだ待機中ですが、フォローアップコマンドは応答なしで1つずつ送信されています。その行の後のすべてのexpectコマンドは無効のようです。そして、スクリプトは終了しました。
ここで何が起こったのかわかりません。期待コマンドが無効になる原因は何ですか?コマンド「wait」はプログラムではないようです(「whereiswait」を使用できません)。