shell中单引号/双引号,小括号/大括号的使用( 二 )


6)四种模式匹配替换结构:${var%},${var%%},${var#},${var##}
第一种模式:${%},这种模式时,shell在中查找,看它是否一给的模式结尾,如果是,就从命令行把中的内容去掉右边最短的匹配模式
第二种模式:${%%},这种模式时,shell在中查找,看它是否一给的模式结尾,如果是,就从命令行把中的内容去掉右边最长的匹配模式
第三种模式:${#}这种模式时,shell在中查找,看它是否一给的模式开始,如果是,就从命令行把中的内容去掉左边最短的匹配模式
第四种模式:${##}这种模式时,shell在中查找,看它是否一给的模式结尾,如果是,就从命令行把中的内容去掉右边最长的匹配模式
这四种模式中都不会改变的值,其中,只有在中使用了*匹配符号时,%和%%,#和##才有区别 。结构中的支持通配符,*表示零个或多个任意字符,?表示零个或一个任意字符,[...]表示匹配中括号里面的字符,[!...]表示不匹配中括号里面的字符
[root@]# var=
[root@]# echo $var
[root@]# echo ${var%s*e}
[root@]# echo $var
[root@]# echo ${var%%s*e}
te
[root@]# echo $var
[root@]# echo ${var#?e}
[root@]# echo $var
[root@]# echo ${var#*e}
[root@]# echo $var
[root@]# echo ${var##*e}
[root@]# echo $var
[root@]# echo ${var##*s}
[root@]# echo $var
[root@]# echo ${var#test}
case
[root@]# echo $var
[root@]# echo ${var#tests}

shell中单引号/双引号,小括号/大括号的使用

文章插图