$()与反引号区别
最后更新于: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
```
';