簡體   English   中英

為什么bash short curcuit在crontab中失敗了?

[英]Why does bash short curcuit fail in crontab?

如果我在航站樓里

[ $(/usr/bin/date +"%Y%m%d") -le 20171209 ] && echo aaa >> /tmp/a

它有效。 如果我在crontab -e

* * * * *   echo aaa >> /tmp/a

然后它也可以工作。 但是如果我在crontab -e

* * * * *   [ $(/usr/bin/date +"%Y%m%d") -le 20171209 ] && echo aaa >> /tmp/a

那什么也沒發生

看着/var/log/cron我看到了

Sep 12 08:36:01 enote CROND[8809]: (root) CMD ([ $(/usr/bin/date +")

誰能解釋這個問題是什么?

百分號在crontab中有特殊含義,必須轉義\\%

man 5 crontab /percent

Percent-signs (%) in the command, unless escaped with backslash (\), will be changed into newline characters, and all data after the first % will be sent to the command as  standard input.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM