「4月日新计划更文活动」
字符串使用
''单引号使用
使用注意事项:
- 单引号里的任何字符串都会原样输出,单引号字符串中的变量是无效的
- 字符串中不能出现单独的一个的单引号,即使使用转移也不行,但是成对出现,作为字符串拼接使用可以
str='I know you'
""双引号使用
使用注意事项:
- 双引号里可以有变量
- 双引号里可以出现转义字符
str1="$name"
str2=""$name"\n"
拼接字符串
- 如果被双引号包围,那么中间可以有空格
- 当字符串不被任何一种引号包围时,遇到空格就认为字符串结束,所以单独使用两个字符串时,中间不能有空格
#单引号拼接
value1='hello, '$name'!'
value2='hello, ${name}!' #输出:hello,${name}!
echo $value1
echo $value2
#双引号拼接
value1="hello, "$name"!"
value2="hello, ${name}!"
echo $value1
echo $value2
获取字符串长度
${#string_name},其中string_name表示字符串名字****- 当变量为数组时,
${# string_name }==${# string_name [0]}
key="abcde"
echo ${#key} #方法一
echo ${#key[0]} #方法二
字符串截取
从左开始计数
- 语句格式:
${string: start :length} - 从字符串左边开始计数:
${string:从左开始,从0开始计数:需要截取的长度}
-
- 注意:第一个字符的索引值为0
key="my name is seven"
echo ${key:1:4} #截取字符串第2个字符开始到第4个字符
从右开始计数
- 从字符串右边开始计数 :
${string: 0-start :length}
-
- 注意:
-
-
- 从右边开始计数时,起始数字是1,
0-是固定写法,专用于从字符串右边开始计数- 无论是从那一边开始计数,截取方向都是从左到右 , 计数只是截取开始位置,不改变截取方向
-
key="my name is seven"
echo ${key:0-7:4} #截取字符串右边开始
从指定字符串开始截取
- 可以截取指定字符右边的所有字符,也可以截取左边的所有字符
使用#号截取右边字符
- 匹配左边的字符 ,保留右边字符,读取方向 -- 》
- 语句格式:
${string#*chars}
-
string:表示截取的字符chars:表示指定的字符*:通配符,表示任意长度的字符串*chars:忽略左边的所有字符,知道遇见chars(不截取chars)
- 注意:
#截取遇到第一个匹配的字符就结束了
url="www.baidu.com"
echo ${url#*.}
- 如果需要匹配到最后一个指定字符在结束的话,可以使用
## - 语句格式:
${string##*chars}
url="www.baidu.com"
echo ${url##*.}
使用%截取左边字符串
- 匹配右边的字符,保留左边字符,读取方向 《 --
- 语句格式:
${string%chars*} - 注意:需要注意
*位置,因为截取反向发生变化,所有忽略了chars右边的字符,所有需要更改*的位置
url="www.baidu.com"
echo ${url%.*}