单引号字符串中的变量是无效的;单引号中不能出现单一的单引号;html
双引号中能够有变量; 双引号里能够出先转义字符;双引号中的单引号输出时维持单引号不变shell
示例 1:bash
#! /bin/bash var="aaa
bbb
ccc"
echo ${var}
执行结果:spa
$ ./demo.sh
aaa bbb ccc #变量中的换行被忽略,且只有一个空格
当字符串当成变量展开时,字符串中的多个空格或换行在展开时会只剩一个(方便for循环时候作处理)。code
示例 2:htm
#! /bin/bash var="aaa
bbb
ccc"
echo "${var}"
执行结果:blog
$ ./demo.sh
aaa
bbbb ccc
当字符串当成字符串被展开时,字符串保持原样不变。字符串
string="abcdefg"
echo ${#string}
string="abcdefg"
#0123456
echo ${string:1:4} #输出 bcde
echo ${string:1} #输出 bcdefg
string="abcdef" echo `expr index "$string" ef` #输出5,由于 e 是第五个出现的