exec命令上的Linux shell脚本语法错误

时间:2012-09-05 12:19:20

标签: linux shell

我在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")"

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

通常,Linux具有多个shell(sh,csh,dash,bash等),这些shell具有细微的语法差异。您可以使用bash测试脚本,而使用短划线执行crontabs。

我建议你:

  1. 检查脚本需要的shell(查看第一行)
  2. 告诉cron使用该shell,即在crontab的开头设置SHELL=/bin/my_shell(有关详细信息,请参阅manpage)。