Bashスクリプトでのsleepコマンドの使い方を実例つきで解説
本記事では、Bash(シェル)スクリプトにおけるsleepコマンドの使い方と、その活用シーンについて詳しく解説します。
Bash(およびその他のLinuxシェル)のsleepコマンドは、指定した時間だけ処理を一時停止させるコマンドです。スクリプトの実行を数秒、数分、数時間など、任意の時間だけ止めることができます。
なぜ処理を一時停止するのか?
スクリプトの実行をあえて一時停止させたい場面には、どのようなものがあるのでしょうか。主なユースケースは以下の通りです。
- 自動化された処理を実行する前に、ユーザーに中断の機会を与える
- ユーザーの入力を待つ
- デバイスの起動や準備が整うまで待機する
- スクリプトの出力を読みたいときに、テキストが画面上を一瞬で流れてしまうのを防ぐ
sleepコマンドの構文
sleepコマンドの基本的な構文は以下の通りです。
sleep NUMBER[UNITS]
各要素の意味は次の通りです。
- NUMBER:一時停止したい時間の長さを指定します(デフォルトの単位は秒)
- 小数も指定可能で、整数である必要はありません
- UNITS:待機時間の単位を指定します。
- 省略した場合は「秒」とみなされます
- 指定できるのは s(秒)、m(分)、h(時)、d(日)のいずれかです
sleepを使ったBashスクリプトの例
#!/bin/bash echo "Hello there!" sleep 6 echo "It's been 6 seconds since I said 'Hello there!'" sleep 7m echo "It's been 7 minutes and 6 seconds since I said 'Hello there!'" sleep .5 echo "It's been 7 minutes and 6.5 seconds since I said 'Hello there!'"
このスクリプトでは、「Hello there!」と表示した後に6秒間待機し、その後さらに7分間待機してから次のメッセージを表示します。最後のsleep .5のように小数を指定することで、0.5秒といった細かい単位での待機も可能です。
Linuxシェルスクリプトの「#!」(シバン)とは?
スクリプトの1行目に記述されている「#!」は「シバン(shebang)」と呼ばれるもので、このスクリプトをどのインタープリタで実行するかをシステムに伝えるための宣言です。「#!/bin/bash」と記述しておけば、そのスクリプトはBashによって実行されます。
-
rbashとは?実例でわかる制限付きBashシェルの仕組みと使い方
Linuxシェルは、GNU/Linux環境における最も強力で魅力的なツールのひとつです。X Window Systemをはじめとするすべてのアプリケーションはシェルを基盤として動作しており、Linuxシェルを使えばシステム全体を精密に制御できます。しかし一方で、コマンドの影響を理解せずに実行してしまうと、システムに深刻な被害をもたらす危険性も秘めています。 特に初心者ユーザーにとって、誤操作によるトラブルは大きなリスクです。そこで役立つのが「制限付きシェル」です。本記事では、rbash(制限付きBash)の概要から、実際に適用される制限内容、有効化の手順、メリット・デメリットまで詳しく解説しま
-
Bashシェル関数入門:実用的な6つのサンプル例で学ぶチュートリアル
Bashシェル関数とは、複数のUNIX/Linuxコマンドをひとつの名前でグループ化し、後からまとめて実行できるようにする仕組みです。Bashシェル関数は通常のUnixコマンドと同じように呼び出すことができ、現在のシェルコンテキスト内で実行されるため、解釈用の新しいプロセスを生成する必要がありません。bashのエイリアス(alias)と関数はどちらも、長いコマンドや複雑なコマンドに対するショートカットを定義するのに役立ちます。しかし、エイリアスでは制御フローや引数の扱いなど、関数ならではの高度な処理を行うことはできません。本記事では、その違いも含めて詳しく解説していきます。この記事は、進行中の