真夜中に期間を定義する必要があります。スクリプトがトリガーされたら、時間が午後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
コマンドに分を含める必要はありません。
答え2
私はあなたが何をしたいのか完全にはわかりませんが、私が見た問題の1つは、1700より大きく0800より小さいことができないため、ifステートメントは常にfalseを返すことです。or
代わりに演算子を使用する必要がありますand
。
私が思いついた内容は次のとおりです。
#!/bin/bash
hr=$(date +%H%M)
if [[ $hr -ge "1700" || $hr -lt "0800" ]]; then
echo "success"
fi