Shell编程 - 引号篇
双引号、单引号、不加引号与反引号
在变量赋值时,如果值有空格,Shell会把空格后面的字符串解释为命令:
# VAR=1 2 3
-bash: 2: command not found
# VAR="1 2 3"
# echo $VAR
1 2 3
# VAR='1 2 3'
# echo $VAR
1 2 3
看不出什么区别,再举个说明:
# N=3
# VAR="1 2 $N"
# echo $VAR
1 2 3
# VAR='1 2 $N'
# echo $VAR
1 2 $N
单引号是告诉Shell忽略特殊字符,而双引号则解释特殊符号原有的意义,比如$、!。
| 引号 | 特点 |
|---|---|
| 单引号 | 所见即所得,单引号里面的内容不解析 |
| 双引号 | 特殊符号会被解析运行,$ ``,但不会解析{} |
| 不加引号 | 与双引号类似,但会解析{} |
| 反引号 | 优先执行,先运行引号里面的命令 |

浙公网安备 33010602011771号