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

我将不胜感激任何帮助。

4

1 回答 1

2

cron可能没有使用与您使用的相同的当前目录。由于您使用相对路径output_file,这会将输出转储到相对于cron当前目录的某个路径(并且由于../../output_dir可能不存在,它只会失败)。

您必须为 使用绝对路径output_dir,或创建相对于脚本目录 ( dirname $0) 的路径。另请参阅Crontab - 在目录中运行

于 2012-08-28T00:11:18.520 回答