このガイドでは、 Linuxスリープコマンドを使用してbashスクリプトを一時停止する方法を示します。
スリープコマンドは、ターミナルウィンドウをロックするのが好きでない限り、完全に無意味ですが、スクリプトの一部として、コマンドを再試行する前に一時停止要因などのさまざまな方法で使用できます。
たとえば、別のサーバーからコピーされたファイルを処理するスクリプトがあるとします。 すべてのファイルのダウンロードが完了するまで、スクリプトはコピー処理を開始しません。
ダウンロードプロセスは、完全に別個のスクリプトによって実行されます。
ファイルをコピーするためのスクリプトには、すべてのファイルがダウンロードされたかどうかをテストするためのループが含まれていることがあります(50個のファイルがあることがわかっていて、50個のファイルが見つかった時点でコピープロセスが開始されます)。
スクリプトがプロセッサ時間を要するので、スクリプトが継続的にテストする必要はありません。 代わりに、十分なファイルがコピーされているかどうかをテストし、数分間ポーズしないで再試行することもできます。 sleepコマンドは、このような状況では完璧です。
sleepコマンドを使用する方法
Linuxスリープコマンドを使用するには、ターミナルウィンドウに次のコマンドを入力します。
スリープ5秒
上記のコマンドは、端末をコマンドラインに戻す前に5秒間一時停止させます。
sleepコマンドを実行するには、sleepというキーワードと、一時停止する数値とそれに続く測定単位が必要です。
遅延は、秒、分、時間または日数で指定できます。
- 秒 - 秒
- m - 分
- h時間
- 日数
何かが起きるのを待っている場合は、cronジョブを使用してスクリプトをバックグラウンドで実行するのではなく、定期的にスクリプトを実行することを検討する価値があります。
sleepコマンドの番号は整数である必要はありません。
浮動小数点数も使用できます。
たとえば、次の構文を使用しても問題ありません。
スリープ3.5s
スリープコマンドの使用例
次のスクリプトは、スリープコマンドを使用して端末ベースのカウントダウンクロックを作成する方法を示しています。
#!/ bin / bash
x = 10
while [$ x -gt 0]
行う
睡眠1s
クリア
エコー "爆発するまで$ x秒"
x = $(($ x - 1))
完了
スクリプトは、変数xを10に設定します。whileループは、xの値がゼロより大きい間は繰り返し処理を続けます。
sleepコマンドは、ループのたびに1秒間スクリプトを一時停止します。
スクリプトの残りの部分は、各繰り返しを画面に表示し、「x秒から爆発するまで」(すなわち10)メッセージを表示し、xの値から1を引きます。
sleepコマンドがなければ、スクリプトはズームスルーされ、メッセージはあまりにも速く表示されます。
sleepコマンドには、2つのスイッチしかありません。
--helpスイッチは、sleepコマンドのヘルプファイルを表示します。 次のようにmanコマンドを使用しても同じことができます。
人間の睡眠
--versionコマンドは、システムにインストールされているsleepコマンドのバージョンを表示します。
--versionスイッチによって返される情報は次のとおりです。
- バージョンナンバー
- 著作権の詳細
- ライセンス
- 著者