从前往后删除
- 变量的删除使用符号
#
和##
,区别是:前者代表删除最短,后者代表删除最长的; - 使用的格式是
${变量#/xxxx}
or${变量##/xxxx}
,删除从最前面开始向右删除 - 示例,变量test_path的内容与PATH相同,分别删除最短的一个路径和删除最长的一个路径(仅剩下一个最短的)
从后往前删除
- 从后往前删除变量内容,使用符号
%
和%%
,区别是:前者删除最短,后者删除最长; - 命令格式
${变量%xxxx}
or${变量%xxx}
- 示例
变量内容的取代
- 取代变量内容使用符号
/xxx/
,命令格式${变量/原内容/取代内容}
,取代第一个匹配项 - 若取代变量内容中全部匹配向,使用符号
//xxx/
,命令格式${变量//原内容/取代内容}
变量内容的替换
- 有时候我们需要判断变量内容是否存在,若存在就使用存在值,若不存在,则使用默认值替换;
- 命令格式
${变量-默认值}
,如果变量是空字符,则不是用默认值,输出空字符;
- 命令格式
${变量:-default}
,使用了符号:
表示若变量内容为空或未设置,则使用default值 - 变量内容替换的更多使用方法,可以参考下图: