我正在为 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