2012-08-28 103 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