以下是Bash流程替换的示例:
zjhui@ubuntu:~/Desktop$ echo >(ls)
/dev/fd/63
zjhui@ubuntu:~/Desktop$ abs-guide.pdf
然后我得到一个光标等待命令。
/dev/fd/63
不存在。我想会发生的是:
/dev/fd
ls
>(ls)
醇>
这是对的吗?为什么有光标等待输入?
答案 0 :(得分:5)
当您执行echo >(ls)
时,bash会将其替换为echo /dev/fd/63
并运行ls
并将/dev/fd/63
连接到其标准输入。 echo
不将其参数用作文件名,ls
不使用标准输入。 Bash会写出你的标准提示,但ls
的输出会在它之后。你可以在那里输入任何Bash命令,你刚从屏幕上方的提示中丢失了视觉提示。
echo >(ls)
不是可能有用的东西。