Bashスクリプトにおいて、特定の時間だけ処理を停止させる必要がある場合がよくあります。このような状況で便利なのがsleepコマンドです。sleepコマンドは、指定した時間だけスクリプトの実行を一時停止します。
X秒の単位スリープ
sleep 5 # 5秒間の一時停止
sleep 0.5 # 0.5秒間の一時停止
X分の単位スリープ
sleep 5m # 5分間の一時停止
X時間の単位スリープ
sleep 5h # 5時間間の一時停止
X天の単位スリープ
sleep 5d # 5天間の一時停止
複合的な時間指定
sleepコマンドは、複数の時間単位を組み合わせて使用することもできます。例えば、1時間2分3秒スリープさせたい場合、次のように指定できます。
sleep 1h 2m 3s
スクリプト内での応用例
このスクリプトは、5秒おきに「コマンドを実行しました」と表示し続けます。
while true; do
# 実行したいコマンド
echo "コマンドを実行しました"
sleep 5
done
Bashスクリプト内で一時的に処理を停止させる簡単かつ効果的な方法を提供します。そのシンプルさと柔軟性により、さまざまなシナリオでの使用が可能です。コマンドの詳細については、ターミナル内で man sleep コマンドを実行するか、Bash ドキュメントを参照してください。
Usage: sleep NUMBER[SUFFIX]...
or: sleep OPTION
Pause for NUMBER seconds. SUFFIX may be 's' for seconds (the default),
'm' for minutes, 'h' for hours or 'd' for days. Unlike most implementations
that require NUMBER be an integer, here NUMBER may be an arbitrary floating
point number. Given two or more arguments, pause for the amount of time
specified by the sum of their values.
--help display this help and exit
--version output version information and exit
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'sleep invocation'