「みんな教えて! 選手権!!」開催のお知らせ

お世話になっております。
現在teratermのマクロを作成しているのですが、waitコマンドがうまく動いてくれない箇所があります。
どなたか解決策をご教授いただけないでしょうか。

【質問】
UNIX上にてシェルを実行後、コマンドプロンプトが戻ってきた時点で"echo $?"にてシェルのリターンコードを確認するマクロを作成しています。しかし、シェルの終了に時間がかかるためか、コマンドプロンプトが戻ってくるのを確認せずに"echo $?"を実行してしまっています。

【プログラム(該当箇所)】
timeout=20
sendln 'シェルの実行'
wait ']$ '
sendln 'echo $?'
wait '0'

【コンソール上】
]$ シェルの実行
echo $?
シェルの実行結果
]$

以上、よろしくお願いいたします。

A 回答 (2件)

sendln 'シェルの実行'


の直後へ
pause 1
を入れてみてはどうでしょうか。(1秒間停止してつぎへ進みます)

それでだめなら、
wait ']$ '
で]$を待っていますが、シェルの実行中に、この]$がでてないか確認して下さい。
実行後のコマンドプロンプトが、[XXX]になることが決定しているなら
wait '[XXX]'としてみて下さい。XXXはあなたの環境で表示される文字列です。
    • good
    • 1
この回答へのお礼

ありがとうございました。
無事にできました。

お礼日時:2009/08/07 11:36

timeout=20なので


20秒過ぎても、コマンドプロンプトに戻ってこない場合は
先に進んでしまいます。
timeout=0にすると、コマンドプロンプトに戻るまで、永久にまちます。

この回答への補足

ご回答ありがとうございます。
timeout=20と設定しているのですが、
20秒経過する前(というかシェルが実行された直後)に"echo $?"が実行されている状況です。
timeout=0に変更して実施しましたが、解決できませんでした。
申し訳ありませんが、他に解決策等ございましたらご教授ください。

補足日時:2009/08/06 15:07
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A