是否可以使用参数扩展来组合模式匹配运算符?
例如,给定变量test=/home/archie/.vimrc.bak
。
我可以使用$test
删除echo ${test##*/}
开头的最长匹配:
>> echo ${test##*/}
.vimrc.bak
我还可以使用$test
删除echo ${test%.*}
末尾的最短匹配:
>> echo ${test%.*}
/home/archie/.vimrc
有没有办法将两个模式匹配运算符组合成输出.vimrc
?
答案 0 :(得分:3)
你无法在一次扩展中完成,但你可以用两个扩展:
$ test=/home/archie/.vimrc.bak; tmp="${test%.*}"; name="${tmp##*/}"; echo "$name"
.vimrc