这个链接是相关的,替代和管道的区别是什么?,但我并不完全理解正在说的一切。
管道command1 | command2与扩展命令command2 $(command1)之间有什么区别?例如
vi $(find /home | grep xyzzy)将结果输出到vi以编辑
find /home | grep xyzzy | vi似乎不适合我。但我不明白根本的区别。
其他有关员额
发布于 2018-04-05 09:47:05
A|B执行A和B (并行),将A的标准输出输入到B的标准输入中。
A $(B)shell首先执行B,收集B的标准输出,然后执行A,但为此执行将单个单词分配给A的argv向量(即A可以通过C和其他语言已知的一般argv机制访问这些单词)。
除了在这两种情况下都涉及两个程序A和B之外,我看不出它们之间有任何相似之处。
发布于 2018-04-05 03:45:07
第一个扩展到vi 。
第二个直接将文件名输送到vi。想必,vi不会像这样工作。您当然可以将文本输送到vim,但这被解释为要处理的文本,而不是文件名本身。(你必须使用vim -。请参阅man vim以获得更多信息。)
https://unix.stackexchange.com/questions/435644
复制相似问题