也许这很简单,但我不知道。 我有一个在cron中指定的工作,它偶尔会调用一个脚本。
类似的东西:1 1 * * * bash script.sh
现在,当脚本启动时,它会读取配置并意识到所有输出都需要附加到日志文件中。
简单的解决方案是更新cron任务,如1 1 * * * bash script.sh >> log
但是,假设在此阶段不知道文件的名称和位置。
所以我提出了有效的解决方案,但我不喜欢它。 脚本顶部的代码:
source config.sh
N=$#
LAST_ARG=${!N}
if [ "$LAST_ARG" != "log" ]
then
bash \`basename $0\` \`echo $@ log\` >> "$LogFile"
exit
fi
我递归地启动相同的脚本,附加参数和日志文件的方向。然后父实例刚关闭。
当然有必要有更好的方法吗?
由于
答案 0 :(得分:7)
exec 1>/the/file/name.log
这会将stdout重定向到/the/file/name.log