小编Ala*_*ell的帖子

在 zsh 中, cat <(cat) 与 cat | 之间的区别 猫 vs 猫 =(猫)?

我期望cat <(cat)cat | cat做同样的事情:将行从标准输入复制到标准输出。我的理解是,两者都将cat在 subshel​​l 中执行 a ,将 subshel​​lcat的 stdout重定向到临时命名管道,然后cat在当前 shell 中执行另一个并将其 stdin 重定向到管道。

相反,cat <(cat)让我在终端上输入,但没有任何输入行被复制并且^D无法发出信号EOFcat | cat虽然按预期工作。

作为进一步的实验,我检查了是否cat =(cat)有与 类似的困难cat <(cat),但它按我的预期工作:直到 a 的所有标准输入^D都被一次性复制到标准输出。

任何人都可以帮助我了解 zsh 在幕后做了什么?

zsh process-substitution subshell

19
推荐指数
1
解决办法
3006
查看次数

标签 统计

process-substitution ×1

subshell ×1

zsh ×1