Bashスクリプトのタイムスロット定義[閉じる]

Bashスクリプトのタイムスロット定義[閉じる]

真夜中に期間を定義する必要があります。スクリプトがトリガーされたら、時間が午後5時から午前8時までであることをテストする必要があります。コマンドはtrueの場合にのみ実行する必要があります。私は以下を試してみましたが、うまくいきましたが、深夜は過ぎませんでした。どのように実装するのか知っていますか?

#!bin/bash
hr=`date +%H%M`  
if test $hr -ge 1700 -a $hr -lt 0800  
then        
echo "success"

fi

ベストアンサー1

午後5時から午前7時59分まで運営(午前8時を除く):

case $(date +%H) in
  (17|18|19|20|21|22|23|00|01|02|03|04|05|06|07) echo run;;
  (*) echo do not run;;
esac

...午前8時の時間範囲をすべて含めるには、最初のリストに8を含めます。dateコマンドに分を含める必要はありません。

おすすめ記事