我期望cat
在下面的命令替换、进程替换和管道中接受 stdin 输入,但是
为什么我提供标准输入后它不输出任何内容
hello
$ echo $(cat) hello
为什么它不让我提供标准输入
$ echo <(cat) /dev/fd/63
它
cat
接受我的标准输入hello
,并cat
输出hello
到标准输出$ cat | cat hello hello
答案1
您应该以 EOF (Ctrl+d) 结束输入,否则 cat 不会退出。
echo 回显 fd 然后退出,从而关闭 cat 的输出描述符,cat 作为响应退出。
第一个猫的输入是标准输入,第二个猫的输出连接到标准输出。第一只猫的输出和第二只猫的输入通过管道连接在一起。