我在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")"
有什么想法吗?谢谢!
答案 0 :(得分:1)
通常,Linux具有多个shell(sh,csh,dash,bash等),这些shell具有细微的语法差异。您可以使用bash测试脚本,而使用短划线执行crontabs。
我建议你:
SHELL=/bin/my_shell
(有关详细信息,请参阅manpage)。