shell的替换运算符和模式匹配运算符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的替换运算符和模式匹配运算符的主要内容,如果未能解决你的问题,请参考以下文章

shopt 内置命令启用shell选项 (extglob)

了解下C# 正则表达式

在 Scala 的模式匹配系统中使用比较运算符

Scala:运算符模式匹配

SHELL笔记5

Oracle Like(模式匹配)子句