cron 執行的腳本中意外標記「>」附近出現語法錯誤

cron 執行的腳本中意外標記「>」附近出現語法錯誤

我正在為 Mac OS/Linux 編寫 shell 腳本。該腳本由 cron 作業執行。我試圖附加標準輸出和標準誤差到日誌檔。我的命令(簡化)如下所示(第 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

相關內容