Bash
不會在本月的第一個星期四執行的 Bash 條件
我有一個每週(週一/週四)執行兩次腳本的 cron - 這執行良好,但我需要在每月的第一個週四停止它的處理。
我想修改這段程式碼:
we=$(LC_TIME=C date +%A) dm=$(date +%d) if [ "$we" = "Thursday" ] && [ "$dm" -lt 8 ] then ..... fi
我假設我只是將 = 更改為 != 但想知道是否有任何我需要注意的問題?
這個問題(我從哪裡得到上面的程式碼)與我想要的相反——我實際上更願意在接受的答案中添加評論來提出這個問題,但我需要 50 個代表。
使用 bash 測試:
if [[ "$(LC_TIME=C date +%A)" == 'Thursday' && "$(date +%d)" -le 7 ]]; then exit 1 fi
注意:從功能上講,這與您問題中的測試沒有什麼不同。
只需將其添加到腳本的頂部即可。如果是每月的第一個星期四,腳本將立即退出,否則將執行。
或者,您可以將其直接放入您的 crontab 條目中,例如:
0 1 * * 1,4 [[ "$(LC_TIME=C date +\%A)" == 'Thursday' && "$(date +\%d)" -le 7 ]] || /path/to/script.sh