单引号
单引号字符串中的变量是无效的;单引号中不能出现单一的单引号;
双引号
双引号中可以有变量; 双引号里可以出先转义字符;双引号中的单引号输出时维持单引号不变
示例 1:
#! /bin/bash
var="aaa
bbb
ccc"
echo ${var}
执行结果:
$ ./demo.sh
aaa bbb ccc #变量中的换行被忽略,且只有一个空格
当字符串当成变量展开时,字符串中的多个空格或换行在展开时会只剩一个(方便for循环时候做处理)。
示例 2:
#! /bin/bash
var="aaa
bbb
ccc"
echo "${var}"
执行结果:
$ ./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 是第五个出现的