我发现了这个:
echo `echo \n`
输出为n
而
echo $(echo \n)
输出为n
我知道$()可以执行嵌套,而``不能,但似乎还有其他区别。
后引号用于旧式命令替换,例如
foo=`command`
foo=$(command)
建议使用语法。$()
内部的后向间隙处理不那么令人惊讶,而$()
更容易嵌套。看见http://mywiki.wooledge.org/BashFAQ/082
- 关于
`...`
语法在:
echo `echo \n`
`echo \n`
返回n
文本echo n
返回n
- 这与返回ASCII LF字符的
echo -e "n"
非常不同
- 这与返回ASCII LF字符的
- 关于
$(...)
语法在:
echo $(echo \n)
`echo \n`
返回n
文本,但返回的$(...)
类似于一个令牌"n"
echo "n"
返回n