Shell 命令替换 反单引号

命令替换:当前内容替换成该命令的输出。

语法

`命令`

`是反单引号,Esc下的键位。

等价语法

$(命令)

反单引号容易看错,$( )又太麻烦。大家还是习惯使用反单引号


什么是命令替换

回顾变量

变量的使用通过$或${ },可以应用在两个位置:

1)赋值语句

2)命令参数

echo "分数:$score"
x=${score}

现在有一个需求,变量内容需要直接替换成一个命令的输出,即通过命令替换。

类似伪代码如下

echo "当前日期:date命令结果"
dateStr="当前日期:date格式化命令结果"

如果直接写命令名,会被当作普通字符串直接输出。需要加反单引号`或$( )进行标识。


示例

例1:显示当前时期 。

echo "当前日期:`date`"

不加反单引号就原样显示date了。

img


例2:显示当前日期,格式化为 年-月-日 。

echo "当前日期:$(date +%Y-%m-%d)"

img


例3:将当前日期的年月日赋值给变量

str1=`date +%Y-%m-%d`
echo $str1