2012-08-28 159 views
0

我試圖從我們的源控制軟件輸出最新的更改列表號碼到日誌文件。我知道該腳本工作正常,直到獲得更改列表號碼。下面的腳本在我手動運行時工作,但在從crontab觸發時似乎不起作用。我不知道爲什麼它不起作用。我與Mac OS X 10.7和許可的機器上運行此腳本設置爲555重定向輸出不起作用

changelist=${changelist_ouput} 

output_file="../../output_dir/result_log.txt" 

if [[ -e ${output_file} ]]; 
then 
    # Delete previous changelist information 
    sed -i.bak '/changelist/d' "${output_file}" 
    rm "${output_file}.bak" 

    # Add current changelist information 
    echo "changelist=${changelist}" >> "${output_file}" 
else 
    echo "WARNING: Failed to update changelist information" 
fi 

我希望得到任何幫助。

回答

2

cron可能與您使用的當前目錄不同。由於您使用output_file的相對路徑,因此會將輸出轉儲爲相對於cron的當前目錄的某個路徑(並且因爲../../output_dir可能不存在,它只會失敗)。

您必須使用output_dir的絕對路徑,或者創建一個相對於腳本目錄(dirname $0)的路徑。另見Crontab - Run in directory

+0

我不知道我是怎麼錯過的。謝謝 :) – arjunurs