我的用戶不必爲STDERR寫權限:寫入STDERR的文件名,即使無法寫入用戶
[email protected]:~> readlink -e /dev/stderr
/dev/pts/19
[email protected]:~> ls -l /dev/pts/19
crw--w---- 1 sysuser tty 136, 19 Apr 26 14:02 /dev/pts/19
這通常不是一個大問題,
echo > /dev/stderr
失敗
-bash: /dev/stderr: Permission denied
但通常重定向像
echo >&2
工作正常。
但是我現在需要應對第三方二進制文件,只提供日誌輸出到指定的文件:
./utility --log-file=output.log
我想直接看到STDERR日誌輸出。
由於缺少寫入權限,我無法像--log-file=/dev/stderr
那樣使用簡單的方法。在設置了寫入權限的其他系統上,這種方式可以正常工作。
此外,我還需要解析輸出到STDOUT的過程,因此我不能簡單地發送日誌到STDOUT,然後重定向到STANDR >&2
。我嘗試使用script
實用程序(其中重定向到/dev/stderr
可正常工作),但它同時也將STDOUT和STDERR合併在一起。
什麼是殼的標準錯誤連接,使得它的工作原理? –
爲什麼你的stderr這樣你不能寫信給它?這是不尋常的 - 不是不可能的,但不尋常的。 –
與Jonathan達成一致,我可以每天'echo>/dev/stderr' – SaintHax