例如定义一个变量存放date命令的输出:
$DATE=`data`
$echo $DATE
命令代换也可以用$()表示:$DATE=$(date) 输出的效果是一样的。我们知道系统是不会存在冗余的的命令,那么这两种方式有什么区别呢?下面我们再看一个例子:
i=1
time1=Fri Aug 23 11:35:21
a=$(echo \time1)
经运行,命令的输出结果是$time1
那么换成a=`echo \time1`输出结果还是一样的吗?输出结果如下:
Fri Aug 23 11:35:21
这种结果的原因如下:
1.反引号本身就对\进行了转移,保留了其本身的意思,如果我们想在反引号中起到\的特殊意义的话,我们必须用两个反斜杠来进行表示。
2.$()中不需要考虑\的问题,与我们平常使用的\一样
反引号是老的用法,$()是新的用法,不管在学习测试中还是在实际工作中,$()的用法都是被推荐的。