将bash脚本输出到文件中(不带>>)

时间:2011-03-02 17:48:26

标签: bash

也许这很简单,但我不知道。 我有一个在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

我递归地启动相同的脚本,附加参数和日志文件的方向。然后父实例刚关闭。

当然有必要有更好的方法吗?

由于

1 个答案:

答案 0 :(得分:7)

exec 1>/the/file/name.log

这会将stdout重定向到/the/file/name.log