SLEEP(1)

名称
sleep - 一定の時間実行を停止する

書式
sleep seconds

解説
sleep コマンドは、少なくとも seconds で指定した秒数だけ実行を停止します。

sleep コマンドがシグナルを受信すると標準の動作を行います。

実装に関する注
この実装においては、 SIGALRM シグナルは特別には扱われません。

sleep コマンドは、非整数の数値で指定された秒数を受け付けて、これを尊重します。 (小数点として ‘’. 文字を使用します)。 これはポータブルではない拡張です。 これを使用するシェルスクリプトは、 他のシステムで正しく実行できないことを、ほぼ保証できます。

診断
sleep コマンドは終了時に以下の値のいずれかを返します。

0   正常終了した場合。

>0  エラーが起きた場合。

使用例
あるコマンドの実行を x 秒後に設定したい場合:

    (sleep 1800; sh command_file >& errors)&

上記の例では、command_file で指定したスクリプトを実行する前に 30 分間待ちます( at(1) ユーティリティの項を参照)。

あるコマンドを( csh(1) を使って)繰り返し実行したい場合:

    while (1)
    	if (! -r zzz.rawdata) then
    		sleep 300
    	else
    		foreach i (`ls *.rawdata`)
    			sleep 70
    			awk -f collapse_data $i >> results
    		end
    		break
    	endif
    end

このようなスクリプトが必要とされるのは以下のような場合でしょう: 現在実行中のプログラムが、一連のファイル群を処理するのに予想以上の 時間を必要としていて、このプログラムが処理結果をファイル (zzz.rawdata)に出力したらすぐに別のプログラムを起動して そのファイルを処理したほうがよい場合があります。 上記のスクリプトでは、zzz.rawdata が生成されたかどうかを 5 分おきに確認し、生成が確認されたら 70 秒待って awk ジョブを 実行する、という操作を繰り返します。

関連項目
nanosleep(2), sleep(3)

規格
sleep コマンドは、おそらく p1003.2 互換です。