Command-Line

為什麼“echo abcde | echo”沒有顯示結果?

  • May 27, 2017

我將一個 echo 命令通過管道傳輸到另一個

🌐 echo a b c d e f g h i | echo 

🌐 echo $?
0

與我的直覺相反,沒有輸出,但是也沒有返回錯誤。我預計,that echo a b c d | echo 這只是echo a b c d. 但事實並非如此,為什麼這些論點在通過管道的過程中失去了?

這是由於echo沒有從標準輸入讀取。管道僅用於將標準輸出從一個命令發送到下一個命令的標準輸入。

由於輸出 efecho a b c ...沒有被 second 消耗echo,因此它會失去並且管道沒有輸出,除了來自 second 的單個換行符echo

由於上次echo成功輸出空行,退出狀態為零。

引用自:https://unix.stackexchange.com/questions/367574