一、截取
- 格式:
${变量:起始位置:长度}
# 字符串 phone=0123456789 # 从 1 索引位置开始截取,截取到尾部,包含 1 位置 echo ${phone:1} # 输出结果 123456789 # 从 1 索引位置开始截取 6 位,包含 1 位置 echo ${phone:1:6} # 输出结果 123456 # 从 1 索引位置开始截取,截取到倒数第 2 位,不包含倒数第 2 位,这种方式有的解释器不支持,会提示不能小于 0 echo ${phone:1:-2} # 输出结果 1234567
二、替换
- 格式:
- 替换一个结果:
${变量/旧字符串/新字符串}
- 替换全部结果:
${变量//旧字符串/新字符串}
# 字符串 phone=66668888 # 单个替换 echo ${phone/6/0} # 输出结果 06668888 # 全部替换 echo ${phone//6/0} # 输出结果 00008888
三、去头
- 格式:
- 从左向右,最短匹配删除:
${变量#关键词}
- 从左向右,最长匹配删除:
${变量##关键词}
# 字符串 phone=1-22-333-4:555-6-777 # 最短匹配删除 echo ${phone#*-} # 输出结果 22-333-4:555-6-777 # 最长匹配删除 echo ${phone##*-} # 输出结果 777 # 最短匹配删除 echo ${phone#*:} # 输出结果 555-6-777
四、去尾
- 格式:
- 从右向左,最短匹配删除:
${变量%关键词}
- 从右向左,最长匹配删除:
${变量%%关键词}
# 字符串 phone=1-22-333-4:555-6-777 # 最短匹配删除 echo ${phone%-*} # 输出结果 1-22-333-4:555-6 # 最长匹配删除 echo ${phone%%-*} # 输出结果 1 # 最短匹配删除 echo ${phone%:*} # 输出结果 1-22-333-4