以下語句在命令提示符下工作。但在cron中不起作用。日期的cron語法
myvar=`date +'%d%m'`; echo $myvar >> append.txt
cron日誌顯示僅運行日期語句的一部分。 如何在cron中使用它?
以下語句在命令提示符下工作。但在cron中不起作用。日期的cron語法
myvar=`date +'%d%m'`; echo $myvar >> append.txt
cron日誌顯示僅運行日期語句的一部分。 如何在cron中使用它?
我的一般經驗法則是「不要在crontab文件中編寫腳本」。這意味着我不會在crontab文件中放置除簡單腳本名稱(具有絕對路徑)和可能的一些控制參數以外的任何內容。特別是,我不把I/O重定向或變量評估放在crontab文件中;這些東西放在由cron作業運行的(shell)腳本中。
這樣可以避免麻煩 - 並且可以在古代和現代的各種cron變體中使用。
從man 5 crontab
:
第六字段( 線的其餘部分)指定要運行的命令。 該行的整個命令部分(最多換行符或%字符)將由/ bin/sh執行,或者由 執行,其格式爲cronfile的SHELL變量中指定的shell。 命令中的百分號(%)將被改爲 新行字符,並且所有 數據將作爲標準輸入發送到該命令,除非用反斜槓()轉義。
你的%
正在改爲換行符,而命令的後半部分以stdin形式輸入命令。正如Ignacio所說,你需要用\
來逃避
%
s可能更適合serverfault – 2009-12-31 07:01:46