0%

变量内容的删除、取代与替换

从前往后删除

  • 变量的删除使用符号###,区别是:前者代表删除最短,后者代表删除最长的;
  • 使用的格式是${变量#/xxxx}or ${变量##/xxxx} ,删除从最前面开始向右删除
  • 示例,变量test_path的内容与PATH相同,分别删除最短的一个路径和删除最长的一个路径(仅剩下一个最短的)

del-from-left

从后往前删除

  • 从后往前删除变量内容,使用符号%%%,区别是:前者删除最短,后者删除最长;
  • 命令格式${变量%xxxx} or ${变量%xxx}
  • 示例

del-from-right

变量内容的取代

  • 取代变量内容使用符号/xxx/,命令格式${变量/原内容/取代内容},取代第一个匹配项
  • 若取代变量内容中全部匹配向,使用符号//xxx/,命令格式${变量//原内容/取代内容}

replace

变量内容的替换

  • 有时候我们需要判断变量内容是否存在,若存在就使用存在值,若不存在,则使用默认值替换;
  • 命令格式${变量-默认值},如果变量是空字符,则不是用默认值,输出空字符;

default

  • 命令格式${变量:-default},使用了符号:表示若变量内容为空或未设置,则使用default值
  • 变量内容替换的更多使用方法,可以参考下图:
    more