
date
「現在」(出力など)が指定された範囲内にあるかどうかをテストするスクリプトを開発する必要があります。現在の範囲は1ヶ月の日付リストでなければなりません(例10,11,12,13,21,22,23
:)。コードを直接書くことができます。
しかし、私は直接コーディングするよりも既存のツールを使用することを好みます。範囲の要件は引き続き変更される予定で、おそらく1日の特定の時間に制限される可能性があります。たぶん特定の曜日にもそうかもしれません。それで私たち全員が知っているcron構文を考えました。
質問:与えられた日時がcron構文などの範囲 "内部"にあることを確認するためのツールはありますか? (cron構文を使用しないツールも機能します。)
答え1
1つの可能なアプローチは、1970年1月1日00:00以降の秒数であるエポック時間を使用することです。
まず、現在の日付と時刻を生成します。
CDATE=$(date +%s)
次に、2つの異なる日付を生成します。
F1DATE=$(date -d "11:02 Feb 14 1999" +%s)
F2DATE=$(date -d "12:20 Feb 14 2024" +%s)
次に、との間にCDATE
あるかどうかを比較します。F1DATE
F2DATE
if [ "$CDATE -gt "$F1DATE" ] && [ "$CDATE" -lt "$F2DATE" ]
then # do the job
fi