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