Linuxのsleepコマンドは、最も単純なコマンドの1つです。名前から推測できるように、その唯一の機能は眠ることです。つまり、指定された時間の遅延が発生します。
したがって、xでsleepコマンドを使用し、次のコマンドはx秒後にのみ実行できる場合。
Sleepコマンドの構文は単純です:
sleep Number[Suffix]
ここでは、接尾辞は次のようになります:
- 秒。これがデフォルトです。
- mで数分。
- h何時間も。
- 数日間
スリープコマンドの例をいくつか見てみましょう。
シェルで直接使用することもできますが、sleepコマンドは通常、bashスクリプトの実行に遅延をもたらすために使用されます。サンプルのbashスクリプトを使用してsleepコマンドの使用法を示します。
bashスクリプトを5秒間一時停止したい場合は、次のようにスリープを使用できます。
sleep 5
サンプルのbashスクリプトでは、次のようになります。
!/bin/bash
echo "Sleeping for 5 seconds…"
sleep 5
echo "Completed"
timeコマンドを使用して実行すると、bashスクリプトが実際に(わずかに)5秒以上実行されたことがわかります。
time ./sleep.sh
Sleeping for 5 seconds…
Completed
real 0m5.008s
user 0m0.000s
sys 0m0.007s
スリープ時間は、次の方法で分単位で指定できます。
sleep 1m
これにより、スクリプト/シェルが1分間一時停止します。スクリプトを数時間遅らせたい場合は、hオプションを使用してそれを行うことができます:
sleep 2h
bashスクリプトを数日間一時停止したい場合でも、dサフィックスを使用してそれを行うことができます:
sleep 5d
これは、隔日または平日に実行する場合に役立ちます。
秒、分、時間、日を組み合わせたスリープコマンド
一度に1つのサフィックスのみを使用する義務はありません。複数のサフィックスを使用でき、スリープの期間はすべてのサフィックスの合計です。
たとえば、次のコマンドを使用する場合:
sleep 1h 10m 5s
これにより、スクリプトは1時間10分5秒待機します。ここでは、sサフィックスはオプションであることに注意してください。
ボーナスのヒント:1秒未満の睡眠
sleepコマンドの最小時間単位が秒であることに気付いたかもしれません。しかし、bashスクリプトが数ミリ秒スリープする場合はどうなりますか?
良い点は、sleepコマンドで浮動小数点(10進小数点)を使用できることです。
したがって、5ミリ秒の一時停止を導入する場合は、次のように使用します。
sleep 0.005
他の接尾辞とともに小数点を使用することもできます。
sleep 1.5h 7.5m
1時間37分30秒の遅延が発生します。
これらの睡眠コマンドの例を読んでいる間、あなたが眠らなかったことを願っています😉
シェルスクリプトに興味がある場合は、bashでの文字列比較についても読みたいと思うかもしれません。ご質問やご提案がございましたら、お気軽にお問い合わせください。