在shell脚本中,这三种使用均出现过,究根结底,找一下它们使用的相同点和差异
$( )和` `——命令替换
命令替换与变量替换差不多,都是用来重组命令行的,先完成` `或( )里的命令行,然后将其结果替换出来,再重组成新的命令行。
在操作上,这两者都是达到相应的效果,但是建议使用$( ),理由如下:
``很容易与''搞混乱,尤其对初学者来说,而$( )比较直观。
最后,$( )的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。
[syf@test mpj]$ echo today is $(date "+%Y-%m-%d")
today is 2020-06-04
[syf@test mpj]$ echo today is `date "+%Y-%m-%d"`
today is 2020-06-04
${ }——变量替换
$( )是执行里面代码得到的结果。${ }是参数。
一般来说,$var与${var}是没有区别的,但是用${ }会比较精确的界定变量名称的范围,所以${ }在字符串处理方面可以发挥很大优势。
[syf@test mpj]$ A=Linux
[syf@test mpj]$ echo $AB
[syf@test mpj]$ echo ${A}B
LinuxB