2009-12-31 50 views
2

以下語句在命令提示符下工作。但在cron中不起作用。日期的cron語法

myvar=`date +'%d%m'`; echo $myvar >> append.txt 

cron日誌顯示僅運行日期語句的一部分。 如何在cron中使用它?

+0

來逃避% s可能更適合serverfault – 2009-12-31 07:01:46

回答

2

用反斜槓(\%)將百分號轉義出來。

+0

試過。但不工作。 – shantanuo 2009-12-31 07:21:35

+0

它現在正在工作。我也逃離了這個空間。 – shantanuo 2009-12-31 07:47:25

1

我的一般經驗法則是「不要在crontab文件中編寫腳本」。這意味着我不會在crontab文件中放置除簡單腳本名稱(具有絕對路徑)和可能的一些控制參數以外的任何內容。特別是,我不把I/O重定向或變量評估放在crontab文件中;這些東西放在由cron作業運行的(shell)腳本中。

這樣可以避免麻煩 - 並且可以在古代和現代的各種cron變體中使用。

1

man 5 crontab

第六字段( 線的其餘部分)指定要運行的命令。 該行的整個命令部分(最多換行符或%字符)將由/ bin/sh執行,或者由 執行,其格式爲cronfile的SHELL變量中指定的shell。 命令中的百分號(%)將被改爲 新行字符,並且所有 數據將作爲標準輸入發送到該命令,除非用反斜槓()轉義。

你的%正在改爲換行符,而命令的後半部分以stdin形式輸入命令。正如Ignacio所說,你需要用\