忙しい人向けに
Teratermマクロにおけるwaitコマンドは、最後に設定したシステム変数 timeoutがそのまま適用されます。
筆者が、マクロの前の方でtimeoutが設定されていることに気づかず、テンパっていたというお話です。
詳細
複数のUbuntu PCに対してSSH接続を行い、各種確認コマンドを実行するTeratermマクロを作成する機会がありました。
while文中、connectコマンド で接続を試みる際に、プロンプトが返ってきてからコマンドを順に打ってほしいので、
test.ttl
wait '$'
を記載しました。しかし、プロンプトが返ってくる前にコマンドが打たれてしまいます。
そこで、Teratermの公式リファレンスを確認したところ、wait を使用する際に timeout を設定しない場合、タイムアウトは発生しないことがわかりました。
そのため、どこかでtimeoutが設定されていると推測。やはり、while文の前で timeout = 1 と設定されている箇所がありました。。。
対策として、wait コマンドの直前で timeout = 30 と再設定することで、期待通りに動作することを確認できました。