[Linux] 原來 shell 有 |& 和 >& 這幾個轉向指令可以用
平常在寫 shell script 時,為了將 stdout 和 stderr 都可以導給下一個程式,
通常會這麼寫:
./test.sh > result 2> result
今天在查指令的時候,才注意到有這幾個轉向指令可以用:
(參考 Linux / Unix Command: exec)
– |&: 將 stdout/stderr 都導到下一個程式的 stdin
– >&: 將 stdout/stderr 寫入到檔案
– >>&: 將 stdout/stderr 附加到檔案
因此,像上面的那段指令,就可以改寫成:
./test.sh >& result
而像下面的指令,就可以同時在 test.sh 輸出的 stdout/stderr 訊息搜尋 “access” 這個字:
./test.sh |& egrep "access"
只不過 |&, >&, >>& 這幾個轉向指令似乎不是每一種 shell 版本都支援,
像我的 Mac 上不支援 >>&,但支援 |& 和 >&。
而在我們一台 Linux appliance 上是全都不支援的~使用前要注意囉~
(本頁面已被瀏覽過 560 次)