shell 脚本-字符串
字符串可以用单引号,也可以用双引号,也可以不用引号
my_name="eno"
echo $my_name
my_name='zeng'
echo $my_name
my_name=eno-zeng
echo $my_name
单引号字符串
str='this is a string'
单引号字符串的限制:
- 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
- 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
双引号字符串
my_name="eno"
str="Hello, I am ${my_name}! \n"
echo $str # 输出 Hello, I am eno!
双引号的优点:
- 双引号里可以有变量
- 双引号里可以出现转义字符
获取字符串长度
string="abcd"
echo ${#string} #输出 4
提取子字符串
使用 str:index:count
截取字符串,index 未截取的开始位置(第一个字符为0),count 为截取的长度
string="hello world"
echo ${string:0:5} # 输出 hello
查找字符串索引
使用 expr index string1 string2
string="hello world"
echo `expr index "${string}" world` # mac 无效
上面语句不适用于 mac 系统,mac 没有 expr index
mac 系统可以使用下语法
string="hello world"
echo $string | sed -n "s/[h].*//p" | wc -c