在shell里面有倒引号”“”和$()两种命令替换方式:
如:
那么这两条命令有什么不同呢?
在多层次的复合替换命令中,倒引号需要加”\”转义,$()则不需要。
例:conmand1 conmand2
conmand3。
原意是先执行conmand3,将结果交给conmand2处理,最后再将conmand2的结果交给conmannd1处理。
但实际由于两个倒引号进行了嵌套,最终将conmand2
conmand3解释成了
conmand2
、conmand3、`。
conmand2 `conmand3` `。
解决办法就是加上"\"进行转移conmand1
而conmand1
(conmand2
(conmand3))则不会出现上面这种情况,他会按照我们的意愿进行替换。