首页 > 代码库 > shell的替换运算符和模式匹配运算符
shell的替换运算符和模式匹配运算符
shell 的替换运算符和模式匹配运算符
替换运算符:
(1) ${varname:-word} :如果varname存在且非null,则返回其值;否则,返回word。
(2) ${varname:=word} :如果varname存在且非null, 则返回其值,否则,设置其为word并返回。
(3) ${varname:?message} :如果varname存在且非null,则返回其值,否则,返回 varname:message,并退出当前的命令或脚本。省略message会出现默认信息, parameter null or not set。常用于捕获由于变量未定义而导致的错误。
(4)${varname:+word} :如果varname存在且非null,则返回word,否则返回null。用途测试变量的存在性,如${count:+1},count若是存在且非null,返回1(也就真)
上述运算符内的冒号(:)是可选的。如果省略,则上述解释中的存在且非null改为存在即可。
模式匹配运算符:
(1) ${variable#pattern} :如果模式匹配于变量的开头处,则删除匹配的最短部分,并返回剩下的部分。
(2) ${variable##pattern} :如果模式匹配于变量的开头处,则删除匹配的最长部分,并返回剩下的部分。
(3) ${variable%pattern} :如果模式匹配于变量的结尾处,则删除匹配的最短部分,并返回剩下的部分。
(4) ${variable%%pattern} :如果模式匹配于变量的结尾处,则删除匹配的最长部分,并返回剩下的部分。
模式匹配运算符常用来切分路径名称的组成部分,例如目录前缀与文件名后缀。
shell的替换运算符和模式匹配运算符