我運行bash腳本,該命令如何stdout和標準錯誤重定向到文件
我用的執行創建日誌文件中的以下
Command1 >> log_file
Command2 >> log_file
這隻能發送標準輸出,而不是終端上出現的標準錯誤。
我可以記錄記錄到文件的stderr和stdout嗎?
我運行bash腳本,該命令如何stdout和標準錯誤重定向到文件
我用的執行創建日誌文件中的以下
Command1 >> log_file
Command2 >> log_file
這隻能發送標準輸出,而不是終端上出現的標準錯誤。
我可以記錄記錄到文件的stderr和stdout嗎?
如果你想登錄到同一文件:
command1 >> log_file 2>&1
如果您想要不同的文件:
command1 >> log_file 2>> err_file
用途:
command >>log_file 2>>log_file
重定向兩個最簡單的語法是:
command &> logfile
如果要追加到文件,而不是覆蓋:
command &>> logfile
不知道何時添加了此運算符,但它可能不適用於舊版本的Bash。它似乎在我的機器上運行Gnu bash v3.2.48。 –
@CostiCiudatu&>>操作符似乎不適用於Mac OS X;更安全地使用Mat的解決方案。 –
@JamesFennell你說得對,我沒有意識到這一點。我upvoted公認的答案:) –
請使用command 2>file
這裏2
代表的文件描述符stderr。您還可以使用1
代替2
使標準輸出被重定向到「文件」
而只是爲了節省其他人感到沮喪,請注意順序非常重要:'2>&1'需要在'>> log_file'之後發生。 – Rufflewind
爲什麼是'>>而不是'>'? – user3527975
'>>'追加到文件,'>'覆蓋。搜索「shell重定向」瞭解更多詳情。 – Mat