1

我在我的 shell 脚本顶部附近添加了以下命令,以便将脚本输出记录到文件中。当我以我的用户 jsmith 身份运行脚本时,这没有问题,但是当脚本在 crontab 中以 root 身份运行时,我收到一个错误:

syntax error near unexpected token:

exec &> >(tee $LOG_PATH$TIMESTAMP.log)

我确实在命令上方正确定义了 $LOG_PATH 和 $TIMESTAMP :

LOG_PATH="/home/jsmith/script/logs/"
TIMESTAMP="$(date -d "today" +"%Y-%m-%d-%H:%M")"

有任何想法吗?谢谢!

4

1 回答 1

1

通常,Linux 具有多个具有细微语法差异的 shell(sh、csh、dash、bash 等)。您可能使用 bash 测试了脚本,而 crontab 使用 dash 执行。

我建议你以下:

  1. 检查您的脚本需要什么外壳(查看第一行)
  2. 告诉 cron 使用该 shell,即SHELL=/bin/my_shell在 crontab 的开头设置(有关详细信息,请参见手册页)。
于 2012-09-05T12:25:08.353 回答