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