在尝试输出重定向和进程替换时,我偶然发现了以下命令及其结果输出:
me @ elem:〜$ echo foo>>(cat); 回声条 酒吧 me @ elem:〜$ foo
(是的,最后的空换行是有意的。)
因此,bash echo的栏会显示我通常的提示,echo的foo,echo的换行符,然后将光标留在那里。如果再次按下Enter键,它将在新行上打印提示,并将光标留在它的后面(按预期,当有人在空命令行上按下Enter键时)。
我期望它将foo写入文件描述符,cat读取它并回显foo,第二个回显回显的栏,然后返回命令提示符。但这显然不是事实。
有人可以解释发生了什么吗?
我想建议您查看以下答案:unix.stackexchange.com/questions/182800/…它解释了双重重定向,并解释了为什么会有不同的结果。穆鲁和迈克尔·霍默斯。
—
没时间
有关明确地解释为什么在某些版本的Bourne Again shell中提示后出现过程替换输出的问题(在某些情况下根本不出现),请参见unix.stackexchange.com/questions/471987。
—
JdeBP