我想我知道当有管道(|)时,首先执行左侧命令,并将结果传递给管道的右侧命令,但是......
apt update | sudo tee
...怎么能这样工作呢?是否涉及任何“语法糖”?
答案1
当有管道(|)时,先执行左侧命令,并将结果传递给管道右侧命令
不正确。
两个过程同时开始。因此,在您的示例中apt update
, 和sudo tee
同时启动,并且 的 STDOUTapt update
被传递到 的 STDIN 上sudo tee
。
不涉及任何语法糖,匿名管道 ( |
) 是 *nix 中 IPC 的常见(且古老)形式。
FWIW,还有另一种形式的管道 IPC——命名管道。