Shell中单百分号%和双百分号%%的作用
使用百分号将变量的内容从变量的后面删除,并从变量的尾部删除。
不同的是,一个%号表示从尾部最近的匹配删除,两个%%从尾部最远的匹配删除。同时支持使用通配符。
比如:
先声明一个变量:
filename=aaabbccddaabbccdd
使用一个百分号截取尾部bb*
echo "${filename%bb*}"
结果:
aaabbccddaa
可以看到是截取了最后面的bbccdd。
使用两个百分号截取尾部bb*
echo "${filename%%bb*}"
结果:
aaa
可以看到是截取的最前面的匹配的到的bb。
注意: 如果不适用通配符,那么截取的字符串必须是最尾部的,不能是中间的字符。