我期望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直到一个^Dget都复制到stdout。
谁能帮助我了解zsh的功能?