Shell
Linux:如何將標準輸出和標準錯誤重定向到記錄器?
我有一個需要在啟動時執行的程序,它在 stdout 和 stderr 上有輸出,我想使用 logger 命令重定向到系統日誌。我的啟動腳本中的內容是:
/home/dirname/application_name -v|記錄器 2>&1 &
這很好地將標準輸出重定向到系統日誌,但標準錯誤即將進入控制台,所以我需要改進命令。
您需要在將 STDERR 和 STDOUT 的輸出連接到
logger
. 試試這個:/home/dirname/application_name -v 2>&1 | logger &
例子
$ echo "hi" 2>&1 | logger & [1] 26818 [1]+ Done echo "hi" 2>&1 | logger $ sudo tail /var/log/messages Apr 12 17:53:57 greeneggs saml: hi
如果在實際的 Bash shell 中謹慎使用,您也可以在此處使用縮寫符號(不要與 Dash 混淆):
$ echo "hi" |& logger &
**注意:**這相當於
<cmd1> 2>&1 | <cmd2>
. 再次僅在互動使用實際的 Bash shell 時使用上述方法,這將是一種很好的方法。摘自ABSG
|& 被添加到 Bash 4 作為 2>&1 | 的縮寫。
參考