首页 > 技术文章 > [Shell] Backtick vs $() 两种方式内嵌值

ifantastic 2014-04-24 23:58 原文

使用反撇号(重音符)`command` 和 $(command) 都表示内嵌shell命令。

for file in $(ls); do
    echo $file
done

for file in `ls`; do
    echo $file
done

 

重音标记法是Unix原始语法,但容易和单引号混淆。

如果你使用Bourne Shell,那么使用重音标记法。

如果你使用的Shell支持$()标记法,那么使用$()标记法是比重音标记法更好的选择。

如果你想兼容老式的Shell,那么使用重音标记法。

 

$()标记法还可用于表示变量,并且更符合我们的思考方式,$意味着值引用。

xaviermavericks:~ Xavier$ test=apple
xaviermavericks:~ Xavier$ echo $test
apple
xaviermavericks:~ Xavier$ echo $testpad

xaviermavericks:~ Xavier$ echo ${test}pad
applepad
xaviermavericks:~ Xavier$ echo $((1+1))
2
xaviermavericks:~ Xavier$ echo $(date)
Thu Apr 24 23:50:59 CST 2014

 

变量:${变量}

数学表达式:$((表达式))

内嵌命令:$(命令)

 

来源

推荐阅读