shell 为什么带反斜杠的命令在$()和''(反斜杠)之间有不同的输出?[duplicate]

q9rjltbz  于 2023-01-13  发布在  Shell
关注(0)|答案(2)|浏览(111)
    • 此问题在此处已有答案**:

Exactly how do backslashes work within backticks?(2个答案)
昨天关门了。
我发现了这个:

echo `echo \\n`

输出为n

echo $(echo \\n)

输出为\n
我知道$()可以执行嵌套,而''不能,但似乎还有其他的区别。

vdzxcuhz

vdzxcuhz1#

反引号用于旧式命令替换,例如

foo=`command`

foo=$(command)

建议使用语法。$()内部的反斜杠处理不那么令人惊讶,并且$()更容易嵌套。请参见http://mywiki.wooledge.org/BashFAQ/082

h6my8fg2

h6my8fg22#

1.关于...语法位置:

echo `echo \\n`
  • 返回\n文本
  • echo \n返回n
  • 这与echo -e "\n"不同,echo -e "\n"返回ASCII LF字符

1.关于$(...)语法在:

echo $(echo \\n)
  • echo \\n返回\n文本,但返回的$(...)类似于一个标记"\n"
  • echo "\n"返回\n

相关问题