Shell中反引号(`)与$()用法的区别

在测试下面脚本内容时,我们发现它们的输出内容不同,这样就引发了一个问题:反引号(

1`
)与$()用法有区别吗?

1echo `echo \\\\ ` 2echo $(echo \\\\ ) 3

将脚本内容修法改为8个反斜杠(\):

1echo `echo \\\\\\\\` 2echo $(echo \\\\\\\\ ) 3

由此,我们可以得出结论:

1.反引号其本身就对\进行了转义,保留了其本身意思,如果我们想在反引号中起到\的特殊意义,我们必须使用2个\来进行表示。所以我们可以简单的想象成反引号中: \ = ;

  1. $()中则不需要考虑\的问题,与我们平常使用的一样:\ = .
下一篇:shell中的括号

代码交流 2021