-2

正如几个论坛和这里所提到的,在 stackoverflow 上,这两种在 shell 中替换命令的方式没有区别。

但是还有。这是一个真实的例子:

# this command works fine:
$(cat $LOG_FILE | gawk "(\$1 \$2) > $TIME")

# this one does not:
`cat $LOG_FILE | gawk "(\$1 \$2) > $TIME"`
4

1 回答 1

1

这背后的全部内容是,当 bash 看到第一个时`,它会尝试找到另一个,\$, \` and \\并在途中全部替换,

这导致替换\$1$1,然后,

当替换 a 中的所有内容时"..."$1不再转义并被视为 shell 脚本本身中的第一个 agrument(在我的情况下是一个空字符串),而不是按原样传递$1给 gawk。

`...`这是不在shell 中使用的另一个原因。

于 2012-12-29T13:12:32.757 回答