引用
在第五章中讲到shell中的引用,shell能识别到4种不同的引用字符:
- 单引号’
- 双引号"
- 反斜线\
- 反引号`
前两种和最后一种必须成对出现,而反斜线可以在命令中根据需要多次出现,这些引用字符在shell中的含义和功能各不相同。
单引号’
shell碰到第一个’,在遇到用于封闭的’之前,shell会忽略单引号对中引用的所有特殊字符,即不再解释字符串中任何特殊字符,对内容的保护比较强,单引号最常见的地方就是一个字符串参数中含有空格时,shell通常会使用空格作为分割符,将一个字符串解释成了多个字符串参数,如下例:
$ echo one teo three four
one teo three four
$ echo 'one teo three four'
one teo three four
双引号"
双引号的作用类似于单引号,除了对于内容的保护要弱于后者,双引号会忽略引用的大部分特殊字符。具体来说,下面3个字符在双引号中不会被忽略:
- 美元符号 $
- 反引号 `
- 反斜线 \
touch file{
01..10}
filelist=*
echo $filelist
file01 file02 file03 file04 file05 file06 file07 file08 file09 file10
echo '$filelist'
$filelist
echo "$filelist"
*
上面的例子中对比了不使用引号,使用单引号以及使用双引号之间的主要不同,在第3行中shell看到了星号并将其替换成当前目录下的所有文件名, 在第5行中,shell完全不处理单引号中的字符,因此显示出了" f