我正在尋找一種方法來測試以下korn shell日期邏輯的不同日子和時間。我沒有root訪問權限來更改系統上的實際日期。korn shell中的測試日期邏輯
CUR_DAY=$(TZ="US/Eastern" date +%a)
typeset -i CUR_HOUR=$(TZ="US/Eastern" date +%H)
# Set the start and end hour given in eastern time
typeset -i START_HOUR=22
typeset -i END_HOUR=7
case $CUR_DAY in
Sun)
if [[ $CUR_HOUR -ge $START_HOUR ]]
then
echo "Send message1"
fi;;
Mon|Tue|Wed|Thu)
if [[ $CUR_HOUR -ge $START_HOUR || $CUR_HOUR -lt $END_HOUR ]]
then
echo "Send message2"
fi;;
Fri)
if [[ "$CUR_HOUR" -lt $END_HOUR ]]
then
echo "Send message3"
fi;;
esac
哪個版本? ksh93的? ksh88?克隆如mksh?你可以依靠有GNU日期嗎? –
順便說一句,你自己的變量的大寫名字是不好的形式 - 這個名字空間是爲系統或shell特有的變量保留的;請參閱http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html的第四段,請記住,環境變量和shell變量共享一個名稱空間。 –
你的星期四邏輯應該是'開始<=當前&&當前結束' - 你現在擁有的是:*任何*小時都可以:小時23是> = 7,小時3 <22 –