原理
%
从右到左非贪婪匹配,删除匹配到的字符串%%
从右到左贪婪匹配,删除匹配到的字符串#
从左到右非贪婪匹配,删除匹配到的字符串##
从左到右贪婪匹配,删除匹配到的字符串
举例说明
#! /bin/bash
VAR=mm.pm.arch.driver.net
# % 表示从右边开始非贪婪匹配 '.*',所以会匹配到最右边的一个'.'
$ echo ${VAR%.*} # 所以结果为: mm.pm.arch.driver
# %% 表示从右边开始贪婪匹配 '.*',所以会匹配到最左边的一个'.'
$ echo ${VAR%%.*} # 所以结果为:mm
# # 表示从左边开始非贪婪匹配 '*.',所以会匹配到最左边的一个'.'
$ echo ${VAR#*.} # 所以结果为:pm.arch.driver.net
# ## 表示从左边开始非贪婪匹配 '*.',所以会匹配到最右边的一个'.'
$ echo ${VAR##*.} # 所以结果为:net