$()与反引号区别

最后更新于:2022-04-02 03:52:47

[TOC] ## `$()`与反引号区别 - 小括号里放的是命令,相当于`ls ~` 反引号一样,执行这个命令 - 在多层次的复合中,``必须要额外的跳脱处理(反斜线), $( )比较直观 - $( )的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的 推荐使用 `$()` 1. 反引号与单引号外形相似,容易混淆; 2. 在多层次的复合替换中,里层的反引号需要转义处理(\`) 实例 使用反引号 ``` // error command1 `command2 `command3`` // bad command1 `command2 \`command3\`` ``` 使用`$()` ``` // good command1 $(command2 $(command3)) ``` 3. 反引号中对于反斜杠有特殊的处理 ``` var1=`echo \$HOME` #使用一个反斜杠无法完成对$符的转义 var2=`echo \\$HOME` var3=$(echo \$HOME) echo $var1 echo $var2 echo $var3 # 输出 /root $HOME $HOME ```
';