Shell总结03-shell变量的操作

shell变量本质上都是字符串,而且为字符串操作提供了强大的功能

字符串长度

# 字符串长度
stringY=123456789
echo ${#stringY}                 # 9
echo `expr length $stringY`      # 9
echo `expr "$stringY" : '.*'`    # 9

获取字符串子串

stringX='0123456789abc'
stringZ=0123456789

echo ${stringZ:0}                 # 0123456789
echo ${stringZ:1}                 # 123456789
echo ${stringZ:7}                 # 789
echo ${stringZ:7:2}               # 78
# 使用:截取,下标从0开始
# ${string:position}             #在 $string 中截取自 $position 起的字符串
# ${string:position:length}      #在 $string 中截取自 $position 起,长度为 $length 的字符串

# 使用expr截取
echo `expr substr $stringZ 1 2`                          # 01
echo `expr substr $stringZ 5 2`                          # 45
# 使用expr截取,下标从1开始

#echo `expr substr $stringX $position $length`  # 在$stringX中截取自$position起,长度为$length的字符串。
echo `expr match ${stringX} '([0-9]{3})'`
#在 $string 中截取substring字符串,其中 $substring 是正则表达式。                                                            

子串替换

stringZ=abcABC123ABCabc
echo ${stringZ/abc/xyz}       # xyzABC123ABCabc
                              # 将匹配到的第一个 'abc' 替换为 'xyz'。
echo ${stringZ//abc/xyz}      # xyzABC123ABCxyz
                              # 将匹配到的所有 'abc' 替换为 'xyz'。

${string/substring/replacement}
#替换匹配到的第一个 $substring 为 $replacement。

${string//substring/replacement}
#替换匹配到的所有 $substring 为 $replacement。
原文地址:https://www.cnblogs.com/elfcafe/p/13127982.html