双引号和单引号之间的区别

双引号 单引号
允许变量扩展 防止可变扩展
允许历史记录扩展 防止历史扩张
允许命令替换 防止命令替换
*@ 可以有特殊的含义 *@ 总是文字
可以包含单引号或双引号 单引号内不允许单​​引号
$`"\可以用\转义,以防止它们的特殊含义 所有这些都是文字

两者共有的属性:

  • 防止 globbing
  • 防止分词

例子:

$ echo "!cat"
echo "cat file"
cat file
$ echo '!cat'
!cat
echo "\"'\""
"'"
$ a='var'
$ echo '$a'
$a
$ echo "$a"
var