「4:00」のような特定の時間が次に発生するまでスリープする一連のコマンドまたは単一のコマンドが必要です。
どうすればいいですか?
at
私は現在てるスクリプトを残してはいけないため、コマンドまたはcronジョブはオプションではありません。
私が話している特定のケースは、画面で実行されているスクリプトです。スクリプトのある時点で必要な多くの重要な変数が格納されているため、スクリプト自体によるスクリプトの実行を停止しないことが非常に重要です。スクリプトは、常に通常の方法で実行されるとは限りません。特定の時間に実行する必要があるだけです。
スクリプトがファイルや、cronjobsやその他の画面などのその他のタスクを作成する必要がある場合、それは非常に有益です。これは単にデザインの問題です。
私はちょうどいい考えを持っていました:
difference=$(($(date -d "4:00" +%s) - $(date +%s)))
if [ $difference -lt 0 ]
then
sleep $((86400 + difference))
else
sleep $difference
fi
もっと良いアイデアはありますか?
必要に応じて、さらに情報が追加されます!
date -d
てdate -j
、に置き換え4:00
てください0400
。