区分三种定界符
""
:双引号,允许扩展,以$
引用其他变量。''
:单引号,禁用扩展,即便$
也视为普通字符。``
:反引号,将命令的执行输出作为变量值,$()
与反引号效果基本一致,只能放命令,- 但是两者还是有区别的:反引号本身就对
\
进行了转义,想在反引号中起到\
的特殊意义,必须使用2
个\
来进行表示(例如:\\ = \
),$()
中则不需要考虑\
的问题,与平常使用的一样:\ = \
。
- 但是两者还是有区别的:反引号本身就对
反引号齐本身就对\进行了转义,保留了其本身意思,如果我们想在反引号中起到\的特殊意义,我们必须使用2个\来进行表示。
所以我们可以简单的想象成反引号中: \ = \
$()中则不需要考虑\的问题,与我们平常使用的一样:\ = \。
举例
```shell // "" 使用 $ echo "$USER id is $UID" dzm id is 501
// '' 使用 $ echo '$USER id is $UID' $USER id is $UID
// `
使用 $ test=
ls -l` $ echo $test total 48 drwxr-xr-x@ 39 dzm staff 1248 12 29 11:32 GitHub drwxr-xr-x@ 7 dzm staff 224 11 29 09:46 MaYun// $() 使用,与 `` 完全等值 $ test=$(ls -l) $ echo $test total 48 drwxr-xr-x@ 39 dzm staff 1248 12 29 11:32 GitHub drwxr-xr-x@ 7 dzm staff 224 11 29 09:46 MaYun ```