Categories: shellscript

シェルスクリプトの実行を一時的に停止させるsleepコマンドについて解説

シェルスクリプトを作成する際、時折スクリプトの実行を一時的に停止させる必要がある場面があります。

これを実現するためのコマンドがsleepです。

sleepコマンドを使うことで、指定した時間だけスクリプトの実行を一時停止させることができます。この記事では、sleepコマンドの使い方や利用方法について詳しく解説します。

sleepコマンドの基本

sleep <時間>

ここで、<時間>にはスリープする期間を指定します。時間の単位は秒(デフォルト)、分、時間、日などを指定できます。

スクリプトの例

5秒スリープさせるスクリプト

デフォルトでは、sleepコマンドは秒単位で時間を指定します。

#!/bin/bash

echo "Sleeping for 5 seconds..."
sleep 5  # 5秒間スリープ
echo "Awake now!"

このスクリプトは、最初に「Sleeping for 5 seconds…」と表示し、5秒間スリープしてから「Awake now!」と表示します。

分単位や時間単位でスリープさせるスクリプト

分単位でスリープする場合は、mを単位として使用します。同様に時間単位でスリープする場合は、hを単位として使用します。日単位でスリープさせるdもあります。

#!/bin/bash

echo "Sleeping for 2 minutes..."
sleep 2m  # 2分間スリープ
echo "Awake now!"

echo "Sleeping for 1 hour..."
sleep 1h  # 1時間スリープ
echo "Awake now!"

スリープコマンドを利用した定期的なタスクの実行

定期的にタスクを実行したい場合に、sleepコマンドを使って待機時間を調整することができます。

#!/bin/bash

while true; do
  echo "Running task..."
  # ここにタスクの処理を書く
  sleep 10m  # 10分間待機してから再実行
done

まとめ

sleepコマンドは、シェルスクリプトにおいて実行のタイミングを調整したり、一定期間待機する必要がある場合に非常に便利なツールです。

秒、分、時間、日単位で指定できるため、さまざまなシナリオでの利用が可能です。

Haruoka