cron 运行的脚本中意外标记“>”附近有语法错误

cron 运行的脚本中意外标记“>”附近有语法错误

我正在为 Mac OS/Linux 编写一个 shell 脚本。该脚本由 cron 作业运行。我正在尝试附加 stdout 和 stderr到日志文件。我的命令(简化)如下所示(第 5 行myscript.sh):

mycommand &>> log.txt

我收到以下错误:

myscript.sh: line 5: syntax error near unexpected token `>

但是如果我将命令更改为:

mycommand &> log.txt

我没有收到任何错误,但文件被覆盖(未附加)。

知道为什么&>>不起作用但又&>起作用吗?

答案1

cron使用执行sh,并且您尝试使用的重定向语法是 Bash 扩展(并且是相当新的扩展;旧版本的 Bash 仅支持&>)。

将标准输出和标准错误附加到文件的可移植方法是

mycommand >>log.txt 2>&1

相关内容