一、命令替换
$( ) 与 ``(反撇号)
在bash中,$( )
与``
(反引号)都是用来作命令替换的。
命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。
[root@localhost ~] echo today is $(date "+%Y-%m-%d")
today is 2017-11-07
[root@localhost ~] echo today is `date "+%Y-%m-%d"`
today is 2017-11-07
在操作上,这两者都是达到相应的效果,但是建议使用$( )
,理由如下:
``
很容易与''
搞混乱,尤其对初学者来说,而$( )
比较直观。
最后,$( )
的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。
二、变量替换
${}
一般情况下,$var
与${var}
是没有区别的,但是用${ }
会比较精确的界定变量名称的范围。
[root@localhost ~] A=Linux
[root@localhost ~] echo $AB #表示变量AB
[root@localhost ~] echo ${A}B #表示变量A后连接着B
LinuxB
- 取子串
# 先赋值一个变量为一个路径
file=/dir1/dir2/dir3/my.file.txt
# 提取最左边的 5 个字节
${file:0:5}
# 提取第 5 个字节右边的连续 5 个字节
${file:5:5}
参考:https://www.cnblogs.com/chengd/p/7803664.html