bash参数展开与组合模式匹配算子

bash参数展开与组合模式匹配算子,bash,parameter-expansion,Bash,Parameter Expansion,是否可以使用参数展开来组合模式匹配运算符 例如,给定变量test=/home/archie/.vimrc.bak 我可以使用echo${test###*/}删除$test开头最长的匹配项: >> echo ${test##*/} .vimrc.bak 我还可以使用echo${test%.*}删除$test末尾的最短匹配项: >> echo ${test%.*} /home/archie/.vimrc 有没有一种方法可以将两个模式匹配运算符组合起来输出。vimrc?您不

是否可以使用参数展开来组合模式匹配运算符

例如,给定变量
test=/home/archie/.vimrc.bak

我可以使用
echo${test###*/}
删除
$test
开头最长的匹配项:

>> echo ${test##*/}
.vimrc.bak
我还可以使用
echo${test%.*}
删除
$test
末尾的最短匹配项:

>> echo ${test%.*}
/home/archie/.vimrc

有没有一种方法可以将两个模式匹配运算符组合起来输出
。vimrc

您不能在一个扩展中完成,但可以使用两个:

$ test=/home/archie/.vimrc.bak; tmp="${test%.*}"; name="${tmp##*/}"; echo "$name"
.vimrc