最近シェルスクリプトを学び始めたばかりなので、それについてはあまり知りません。
時間ベースの while ループの例を見つけようとしていますが、見つかりません。
特定の時間、たとえば 1 時間、ループを実行したいとします。ループは 1 時間実行され、その後自動的に終了します。
編集: このループはスリープなしで継続的に実行されるため、ループ条件はスリープではなく、ループの開始時刻と現在の時刻に基づく必要があります。
ベストアンサー1
これを行う最良の方法は、スクリプト (またはシェル) の実行時間がカウントされる $SECONDS 変数を使用することです。以下のサンプルは、while ループを 3 秒間実行する方法を示しています。
#! /bin/bash
end=$((SECONDS+3))
while [ $SECONDS -lt $end ]; do
# Do what you want.
:
done