变量替换**

语法
${变量#替换规则} :从变量头开始匹配,将符合匹配格式最短的数据进行删除
${变量##替换规则} :从变量头开始匹配,将符合匹配格式最长的数据进行删除
${变量%替换规则} :从变量尾开始匹配,将符合匹配格式最短的数据进行删除
${变量%%替换规则} :从变量尾开始匹配,将符合匹配格式最长的数据进行删除
${变量/旧字符串/新字符串} : 替换变量里的旧字符串为新字符串,只替换第一个匹配到的字符串
${变量//旧字符串/新字符串} : 替换变量里的旧字符串为新字符串,替换所有匹配到的字符串

例子

  1. $ text="I love you,do you love me"
  2. $ echo ${text#*ov}
  3. e you,do you love me
  4. $ echo ${text##*ov}
  5. e me
  6. $ echo ${text%ov*}
  7. I love you,do you l
  8. $ echo ${text%%ov*}
  9. I l
  10. $ echo $PATH
  11. /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin:/usr/local/opt/maven@3.3/bin
  12. $ echo ${PATH/bin/BIN}
  13. /usr/local/BIN:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin:/usr/local/opt/maven@3.3/bin
  14. $ echo ${PATH//bin/BIN}
  15. /usr/local/BIN:/usr/BIN:/BIN:/usr/sBIN:/sBIN:/Applications/VMware Fusion.app/Contents/Public:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/BIN:/usr/local/opt/maven@3.3/BIN