得到长度: %x="abcd" #方法一 %expr length $x 4 # 方法二 %echo ${#x} 4 # 方法三 %expr "$x" : ".*" 4 # expr 的帮助 # STRING : REGEXP anchored pattern match of REGEXP in STRING 查找子串: %expr index $x "b" 2 %expr index $x "a" 1 %expr index $x "b" 2 %expr index $x "c" 3 %expr index $x "d" 4 得到子字符串: # 方法一 # expr <string> startpos length %expr substr "$x" 1 3 abc %expr substr "$x" 1 5 abcd %expr substr "$x" 2 5 bcd # 方法二 # ${x:pos:lenght} %echo ${x:1} bcd %echo ${x:2} cd %echo ${x:0} abcd %echo ${x:0:2} ab %pos=1 %len=2 %echo ${x:$pos:$len} bc 匹配正则表达式: # 打印匹配长度 %expr match $x "." 1 %expr match $x "abc" 3 %expr match $x "bc" 0 字符串的掐头去尾: %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 字符串反转: 使用rev命令 echo "hefang"|rev