1. 字符串内容替换
${变量#关键字} | 从头开始,将匹配到的最短子串删除 (第一个匹配到的子串删除)删除第1个分隔符及其之前的内容 |
${变量##关键字} | 从头开始,将匹配到的最长子串删除 删除最后1个分隔符及其之前的内容 |
${变量%关键字} | 从尾开始,将匹配到的最短子串删除 |
${变量%%关键字} | 从尾开始,将匹配到的最长子串删除 |
${变量/旧字符串/新字符串} | 替换掉第一个匹配到的旧字符串 |
${变量//旧字符串/新字符串} | 替换掉所有匹配到的旧字符串 |
待处理变量: aa='/aa/bb/aa/cc'
# 从前往后找到/后第一个/,/及其前面的字符全部删除
echo ${aa#/*/} # 最后一个/是分隔符,第一个/代表从其开始,通配符*代表0到无穷多个任意字符
# bb/aa/cc
# 从前往后找到/后最后一个/,/及其前面的字符全部删除
echo ${aa##/*/}
# cc
# 从后往前找到第一个/,/及其后面的字符全部删除
echo ${aa%/*}
# /aa/bb/aa
# 从后往前找到最后一个/,/及其后面的字符全部删除
echo ${aa%%/*}
# 空
# 从前往后将第一个aa替换成AA
echo ${aa/aa/AA}
# /AA/bb/aa/cc
# 从前往后将全部aa替换成AA
echo ${aa//aa/AA}
# /AA/bb/AA/cc