约定:%代表命令行的“#”,#代表结果

一、得到长度
%x="abcd"
#方法一
%expr length $x
# 方法二
%echo ${#x}
# 方法三
%expr "$x" : ".*"
二、查找子串
%expr index  $x "b"
#2

三、得到子字符串
# 方法一
# expr <string> startpos length
%expr substr "$x" 1 3
# abc
%expr substr "$x" 1 5
# abcd
# 方法二
# ${x:pos:lenght}
%echo ${x:1}
#bcd
%echo ${x:2}
# cd
%echo ${x:0}
# abcd
%echo ${x:0:2}
# ab

四、字符串的掐头去尾
%x=aabbaarealwwvvww
%echo "${x%w*w}"
# aabbaarealwwvv
%echo "${x%%w*w}"
#aabbaareal
%echo "${x##a*a}"
# lwwvvww
%echo "${x#a*a}"
# bbaarealwwvvww

其中 , # 表示掐头,
其中 , % 表示去尾,
单个的表示最小匹配,双个表示最大匹配。

五、字符串的替换
%x=abcdabcd
%echo ${x/a/b} # 只替换一个
#bbcdabcd
%echo ${x//a/b} # 替换所有
# bbcdbbcd