鸟哥LINUX私房菜笔记-变量配置
变量配置方式 说明
${变量#关键词} 若变量内容从头开始的数据符合“关键词”,则将符合的最短数据删除。
${变量##关键词} 若变量内容从头开始的数据符合“关键词”,则将符合的最长数据删除。
${变量%关键词} 若变量内容从尾到头的数据符合“关键词”,则将符合的最短数据删除。
${变量%%关键词} 若变量内容从尾到头的数据符合“关键词”,则将符合的最长数据删除。
${变量/旧字符串/新字符串} 若变量内容符合“旧字符串"则第一个"旧字符串"会被"新字符串"取代。
${变量//旧字符串/新字符串} 若变量内容符合“旧字符串"则全部"旧字符串"会被"新字符串"取代。
变量的测试与内容的替换
规则:
new_var=${old_var-content}
"判断"某个变量是否存在,若变量存在则使用既有的配置,若变量不存在则给予一个常用的配置。
为了防止出现旧变量值为空字符串的情况:
new_var=${old_var:-content}
加上冒号后,被测试的变量未被配置或者是已被配置为空字符串时, 都能够用后面的内容来替换与配置。
变量配置方式 | str 没有配置 | str 为空字符串 | str 已配置非为空字符串 |
var=${str-expr} | var=expr | var= | var=$str |
var=${str:-expr} | var=expr | var=expr | var=$str |
var=${str+expr} | var= | var=expr | var=expr |
var=${str:+expr} | var= | var= | var=expr |
var=${str=expr} | str=expr var=expr |
str 不变 var= |
str 不变 var=$str |
var=${str:=expr} | str=expr var=expr |
str=expr var=expr |
str 不变 var=$str |
var=${str?expr} | expr 输出至 stderr | var= | var=$str |
var=${str:?expr} | expr 输出至 stderr | expr 输出至 stderr | var=$str |