Shell-Script
命令在 crontab 中不起作用
我有一個小檢查今天是否是每月的第一個星期一,就像這樣:
['$(date "+%u")' = "1"] && echo 'trąba'
但是當 crontab 向我發送一封出錯的電子郵件時,我收到了錯誤消息
/bin/sh: -c: line 0: unexpected EOF while looking for matching `'' /bin/sh: -c: line 1: syntax error: unexpected end of file
我嘗試將*’$(date “+%u”)’*更改為 " $ (date ‘+%u’)" but didn’t help. The title of the email is [" $ (date ‘+ 所以我認為第一個引號有問題但是這段程式碼在終端內執行時工作得很好。也許有人更好地“檢查”來檢查每月的第一個星期一
作業系統:CeontOS 7
數一下
* * * * * [ "$(date +%u)" -eq 1 ] && echo trąba
固定 POSIX 程式碼如下:
[ "$(date +%u)" -eq 1 ] && echo trąba
錯誤/警告/資訊是:
[
..]
塊中缺少空格- 撇號而不是雙引號
- 等號而不是
-eq
測試中的POSIX[
..]
- 您不必在之後引用任何內容
echo
- 你不必引用數字
- 您不必引用該
date
程式碼克朗
*/1 * * * * [ "$(/usr/bin/date +\%u)" -eq 1 ] && /usr/bin/echo trąba >> ~/cron-test
- 為了測試這一點,您可以嘗試上面的程式碼
- 您可能在系統的其他地方擁有您的
date
和echo
二進製文件,以確定它們在哪裡,使用which date
等。- 修改你的 Cron 後,你可以簡單地使用它並坐穩
tail -f ~/cron-test