首页 > 代码库 > 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的替换运算符和模式匹配运算符