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

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

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

人们能意识到这两者对我来说真的很相似,即绝对平等吗?

答案1

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

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

相关内容