我期望cat <(cat)
并cat | cat
做同样的事情:将行从stdin复制到stdout。我的理解是,两者都将cat
在子shell中执行一个,将子shell cat
的stdout 重定向到一个临时的命名管道,然后cat
在当前shell中执行另一个,将其stdin重定向到该管道。
取而代之的是cat <(cat)
让我在终端上键入内容,但是没有任何输入行被复制并且^D
无法发出信号EOF
;cat | cat
工作正常。
作为进一步的实验,我检查了是否cat =(cat)
有与相似的困难cat <(cat)
,但是它按我的预期工作:一次将所有stdin直到一个^D
get都复制到stdout。
谁能帮助我了解zsh的功能?