Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

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によって実行されます。

  1. rbashとは?実例でわかる制限付きBashシェルの仕組みと使い方

    Linuxシェルは、GNU/Linux環境における最も強力で魅力的なツールのひとつです。X Window Systemをはじめとするすべてのアプリケーションはシェルを基盤として動作しており、Linuxシェルを使えばシステム全体を精密に制御できます。しかし一方で、コマンドの影響を理解せずに実行してしまうと、システムに深刻な被害をもたらす危険性も秘めています。 特に初心者ユーザーにとって、誤操作によるトラブルは大きなリスクです。そこで役立つのが「制限付きシェル」です。本記事では、rbash(制限付きBash)の概要から、実際に適用される制限内容、有効化の手順、メリット・デメリットまで詳しく解説しま

  2. Bashシェル関数入門:実用的な6つのサンプル例で学ぶチュートリアル

    Bashシェル関数とは、複数のUNIX/Linuxコマンドをひとつの名前でグループ化し、後からまとめて実行できるようにする仕組みです。Bashシェル関数は通常のUnixコマンドと同じように呼び出すことができ、現在のシェルコンテキスト内で実行されるため、解釈用の新しいプロセスを生成する必要がありません。bashのエイリアス(alias)と関数はどちらも、長いコマンドや複雑なコマンドに対するショートカットを定義するのに役立ちます。しかし、エイリアスでは制御フローや引数の扱いなど、関数ならではの高度な処理を行うことはできません。本記事では、その違いも含めて詳しく解説していきます。この記事は、進行中の