grep foo $(CMD) 和 CMD 的本质区别是什么?grep foo

Xsi*_*Xsi 1 command-line bash

这真的很重要,因为直觉上它们对我来说都很相似。

谁能意识到这两者对我来说真的很像,即绝对平等?

Chr*_*own 8

他们根本不做同样的事情。前者是命令替换,后者是管道。结果完全不同。

grep foo "$(echo foo)"将在名为“foo”的文件中查找单词“foo”,因为“foo”是echo. echo foo | grep foo将从其STDIN输入中查找单词“foo” 。在前一种情况下,您可能会收到文件未找到错误。在后一种情况下,你不会。它们从根本上不是相同的操作。