# wait

文字列を待つ。

    wait <string1> [<string2> ...]

## 解説

文字列 <string1> [<string2> ...] のうち一つがホストから送られてくるか、タイムアウトが発生するまで MACRO を停止させる。文字列は最大 10 個まで指定できる。

空文字列が指定された場合、任意の一文字を受信するのを待つ。

システム変数 timeout か mtimeout が 0 より大きい場合、<timeout>.<mtimeout> 秒の時間がすぎるとタイムアウトが発生する。タイムアウトの値が 0 以下の場合は、タイムアウトは発生しない。

これらのコマンドの実行結果はシステム変数 result に格納される。変数 result の値の意味は以下のとおり。

値 | 意味
--- | ---
0 | タイムアウト。どの文字列も来なかった。
1 | <string1> を受信した。
2 | <string2> を受信した。
n | <stringn> を受信した。n=1..10

## 例

    ; タイムアウトを30秒に設定。
    timeout = 30

    ; 文字列 "OK" か "ERROR" を待つ。
    wait 'OK' 'ERROR'
    ; タイムアウトなら、:timeout へジャンプ。
    if result=0 goto timeout
    ; "OK" が来たなら、:ok へジャンプ
    If result=1 goto ok
    ; "ERROR" が来たなら、:error へジャンプ
    If result=2 goto error

    ; 行先頭の ">" か、行末の "complete." を待つ。(ASCIIコード10, 13は LF, CR)
    wait #10'>' 'complete.'#13

    ; タイムアウトを100ミリ秒に設定。
    timeout = 0
    mtimeout = 100
    wait 'server response'

    ; 制御コードを待つ
    setdebug 2
    wait '11 0D 11 0D'
    setdebug 0

## 参照

- setdebug
- waitln
- waitregex