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

示例

双引号单引号
允许变量扩展防止变量扩展
如果启用,则允许历史记录扩展阻止历史扩展
允许命令替换防止命令替换
*并且@可以有特殊的意义*并且@总是文字
可以包含单引号或双引号单引号内不允许单引号
$,`,",\可以进行转义\,以防止其特殊含义它们都是文字

两者共有的属性:

  • 防止水珠

  • 防止单词分裂

例子:

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