关于Shell中命令替换$(...)与后置引用`...`的不一样

命令替换

在bash中,$( )` `(反引号)都是用来做命令替换的。
命令替换与变量替换差很少,都是用来重组命令行的,先完成引号里的命令行,而后将其结果替换出来,再重组成新的命令行。bash

 

$( )与``

在操做上,这二者都是达到相应的效果,可是建议使用$( ),理由以下:命令行

  • ``很容易与''搞混乱,尤为对初学者来讲。
  • 在多层次的复合替换中,``必需要额外的跳脱处理(反斜线),而$( )比较直观。
  • 最后,$( )的弊端是,并非全部的类unix系统都支持这种方式,但反引号是确定支持的。
# 将cmd1执行结果做为cmd2参数,再将cmd2结果做为cmd3的参数

cmd3 $(cmd2 $(cmd1))

# 若是是用反引号,直接引用是不行的,还须要做跳脱处理

cmd3 `cmd2 \`cmd1\``
相关文章
相关标签/搜索