我有一个每周运行脚本两次(周一/周四)的 cron - 这运行良好,但我需要在该月的第一个周四停止它的处理。
我想调整这段代码:
we=$(LC_TIME=C date +%A)
dm=$(date +%d)
if [ "$we" = "Thursday" ] && [ "$dm" -lt 8 ]
then
.....
fi
我假设我只是将 = 更改为 != 但想知道是否有任何我需要注意的陷阱?
这个问题(我从哪里得到上面的代码)是与我想要的相反- 我实际上更愿意在已接受的答案中添加评论来提出这个问题,但我需要 50 名代表。
答案1
使用 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