在测试下面脚本内容时,我们发现它们的输出内容不同,这样就引发了一个问题:反引号(
1 | 1` |
)与$()用法有区别吗?
1
2
3 1echo `echo \\\\ `
2echo $(echo \\\\ )
3
将脚本内容修法改为8个反斜杠(\):
1
2
3 1echo `echo \\\\\\\\`
2echo $(echo \\\\\\\\ )
3
由此,我们可以得出结论:
1.反引号其本身就对\进行了转义,保留了其本身意思,如果我们想在反引号中起到\的特殊意义,我们必须使用2个\来进行表示。所以我们可以简单的想象成反引号中: \ = ;
- $()中则不需要考虑\的问题,与我们平常使用的一样:\ = .