变量子串的常用操作:

ID表达式说明
1${#string}返回$string的长度
2${string:position}在$string中,从位置$position之后开始提取子串
3${string:position:length}在$string中,从位置$position之后开始提取长度为$length子串
子串删除
4${string#substring}从变量$string开头开始删除最短匹配$substring子串
5${string##substring}从变量$string开头开始删除最长匹配$substring子串
6${string%substring}从变量$string结尾开始删除最短匹配$substring子串
7${string%%substring}从变量$string结尾开始删除最长匹配$substring子串
子串替换
8${string/substring/replace}使用$replace,来替代第一个匹配的$substring
9${string/#substring/replace}如果$string前缀匹配$substring,就用$replace来代替匹配$substring
10${string/%substring/replace}如果$string后缀匹配$substring,就用$replace来代替匹配$substring

下面来练习:

1.变量字符个数

xiaolangit="hello world"
echo ${#xiaolangit}
11

2.从第二个位置开始查

# echo ${xiaolangit:5}
# world

3.不包含1的过滤出来

# a=12345
# echo {a:1}
# 2345

4.最短匹配

xiaolangit='hehe haha hehehe hehe'
echo ${xiaolangit#hehe}
haha hehehe hehe


替换功能:(只能替换前面匹配的字母)

# xiaolangit='haha xiaolangit hehe'
# echo ${xiaolangit/xiaolangit/langlangit}
# haha langlangit hehe

类似的替换:

# xiaolangit='haha xiaolangit haha'
# echo ${xiaolangit/#haha/hehe}
# hehe xiaolangit haha

结尾的替换

# xiaolangit='haha xiaolangit haha'
# echo ${xiaolangit/%haha/hehe}
# haha xiaolangit hehe