0011-Shell字符串(最常用的数据类型)
2019-11-06 本文已影响0人
Col_
字符串的定义可以用单引号,也可以双引号,也可以不用引号。
0001-单引号
str='this is a string'
单引号字符串的限制:
- 单引号里的任何字符都会原样输出,单引号字符串中的变量时无效的。
- 单引号字符串中不能出现单独一个的单引号(对单引号使用转义符号也不行),但可成对出现,作为字符串拼接使用。
str='I am ''a ''good boy' #单引号里有两对单引号,不是双引号。
echo $str
运行结果:
I am a good boy
0010-双引号
my_name='cool'
str="Hello, my name is \"$my_name\"! \n"
echo -e $str
运行结果:
Hello, my name is "cool"!
双引号的优点:
- 双引号里可以有变量
- 双引号里可以出现转义字符
0011-拼接字符串
your_name="cool"
#使用双引号拼接
greeting="hello,"$your_name" !"
greeting_1="hello,${your_name} !"
echo $greeting $greeting_1
#使用单引号拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
echo $greeting_2 $greeting_3
运行结果:
hello,cool ! hello,cool !
hello, cool ! hello, ${your_name} !
0100-获取字符串长度
${#variable_name}获取长度.
String="abcd"
echo ${#String}
运行输出4.
0101-提取字符串
${variable_name:position:length}提取字符串。
String="I am a good boy"
echo ${String:2:9}
运行结果:am a good
0110-查找子字符串
index "$variable_name" char查找子字符
查找字符a或o的位置(哪个字符先出现就计算哪个)
string="I am a good boy"
echo `expr index "$string" ao`
运行结果:3
注意:以上脚本`是反引号,不是单引号。