这非常重要,因为直觉上它们对我来说都很相似。
人们能意识到这两者对我来说真的很相似,即绝对平等吗?
答案1
他们根本不做同样的事情。前者是命令替换,后者是管道。结果完全不同。
grep foo "$(echo foo)"
将在名为“foo”的文件中查找单词“foo”,因为“foo”是echo
.echo foo | grep foo
将从其输入中查找单词“foo” STDIN
。在前一种情况下,您可能会收到文件未找到错误。在后一种情况下,你不会。它们根本上不是同一个操作。
这非常重要,因为直觉上它们对我来说都很相似。
人们能意识到这两者对我来说真的很相似,即绝对平等吗?
他们根本不做同样的事情。前者是命令替换,后者是管道。结果完全不同。
grep foo "$(echo foo)"
将在名为“foo”的文件中查找单词“foo”,因为“foo”是echo
.echo foo | grep foo
将从其输入中查找单词“foo” STDIN
。在前一种情况下,您可能会收到文件未找到错误。在后一种情况下,你不会。它们根本上不是同一个操作。