課程
/運維&測試
/Linux
/ Linux達人養成計劃 I
rt
管道符前面的命令錯誤時,后面命令還會執行嗎, 還是會直接報錯?
2015-09-01
源自: Linux達人養成計劃 I 9-6
正在回答
管道會將前面命令的標準輸入當作后面命令的標準輸入。一般程序錯誤時是沒有標準輸出的,其錯誤信息會送到標準錯誤輸出。
通常shell會啟動前一個程序,并通過系統調用讀取它的輸出,再通過系統調用啟動后一個程序,通過管道向后一個程序的標準輸入進行輸出。出錯時如何處理應該是依照各shell實現而定。bash中是后續程序仍然執行,但不會獲得任何輸入。
所以后一個程序會執行,且你應該能在屏幕上看到前一個程序的錯誤輸出。
另外,一般整個管道的返回狀態是最后一個命令的退出狀態。
五月_星空 提問者
onemoo 回復 五月_星空 提問者
五月_星空 提問者 回復 onemoo
舉報
Linux入門視頻教程,以通俗易懂的語言帶你感受linux之美
1 回答安裝Nginx時,執行make命令報錯
3 回答find 命令中的-exec命令報錯?
4 回答寫入命令報錯
3 回答運行某些命令后信息太多直接翻頁了,如何看到前面的信息?(虛擬機內運行命令,非XShell)
2 回答關于命令行后面/輸入的問題?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-09-02
管道會將前面命令的標準輸入當作后面命令的標準輸入。一般程序錯誤時是沒有標準輸出的,其錯誤信息會送到標準錯誤輸出。
通常shell會啟動前一個程序,并通過系統調用讀取它的輸出,再通過系統調用啟動后一個程序,通過管道向后一個程序的標準輸入進行輸出。出錯時如何處理應該是依照各shell實現而定。bash中是后續程序仍然執行,但不會獲得任何輸入。
所以后一個程序會執行,且你應該能在屏幕上看到前一個程序的錯誤輸出。
另外,一般整個管道的返回狀態是最后一個命令的退出狀態。