shell中字符串使用单、双引号均可:
name='andy'
id="haha"
echo $name
echo $id
1.字符串拼接:
⚠️方式一:
#!/bin/bash
name='andy'
id="haha"
#可以缩写为total="$name$id"
total="${name}${id}"
echo $total
⚠️方式二:
#!/bin/bash
name='andy'
id="haha"
total=" 姓名:$name 身份证: $id"
echo $total
2.获取字符串长度:
语法:${#变量名}
例如:
#!/bin/bash
name='andy'
echo ${#name}
#输出结果是4
3.字符串提取子串:
一:语法${string:position}
在$string
中,从$position
位置之后开始提取子串:
name="abcABC123ABCabcde"
subname=${name:3}
echo ${subname}
#输出结果ABC123ABCabcde
二:语法${string:position:length}
在$string中
,从$position
位置之后开始提取$length长度的子串
${NAME:3:6}
4.字符串删除:
⚠️从左到右删除
方式一:
${string#substring正则表达式}
从变量$string
开头开始删除最短匹配$substring
子串
name="abcABC123ABCabcde"
subname=${name#a*c}
echo ${subname}
方式二:
${string##substring正则表达式}
从变量$string
开头开始删除最长匹配$sunstring
子串
name="abcABC123ABCabcde"
subname=${name##a*c}
echo ${subname}
⚠️从右到左删除
${string%substring}
从变量$string
结尾开始删除最短匹配$substring
子串
${string%%substring}
从变量$string
结尾开始删除最长匹配$substring
子串
注意:
在进行#或##匹配时,string的首字符必须是被删除子串substring的第一个字符,不然无法匹配删除;
在进行%或者%%匹配时,string的最后一个字符必须是被删除子串substring的最后一个字符,不然无法进行删除操作;
5.字符串替换
${parameter/parttern/string}
用string
来替换第一个匹配的pattern
${parameter/#parttern/string}
从开头匹配parameter
变量中的pattern
,匹配上后就用string
来替换匹配的pattern
${parameter/%pattern/string}
从结尾开始匹配parameter
变量中的pattern
,匹配上后就用string
替换匹配的pattern
${parameter//pattern/string}
用string
来替换parameter
变量中所有匹配的pattern
网友评论