2011-02-12 30 views
1

我对这种差异感到怀疑,哪一个是在shell脚本中执行命令更好的引用。更好地引用shell脚本执行命令

例如,我有这样两个例子:

echo "The name of the computer is `uname -n`" 
echo "The name of the computer is $(uname -n)" 

哪一个更好?或者没有不同?

回答

7

一般推荐使用$(...),因为它嵌套更容易。比较:

date -d "1970-01-01 $(echo "$(date +%s)-3600"|bc) sec UTC" 

date -d "1970-01-01 `echo \"\`date +%s\`-3600\"|bc` sec UTC " 
+0

+1它也很容易将反引号与单引号混淆一瞥。有关更多信息,请参阅[为什么$(...)优于反引号?](http://mywiki.wooledge.org/BashFAQ/082“BashFAQ/082”)。 – 2011-02-13 00:00:22