美文网首页
shell 单个%和两个%%的区别

shell 单个%和两个%%的区别

作者: 皮儿吃屁 | 来源:发表于2022-06-09 22:35 被阅读0次

今天需要把图片批量转化下格式,想着写个shell搞下吧,自己已经忘干净了,百度下吧。果然你的问题大家都处理过。
···
for file in .png
do convert file{file%%.
}.jpg
done

也可以直接写到一行

for file in .png; do convert file{file%%.}.jpg; done
···
代码查到了,也解决问题了,但这两个%%啥意思,没看懂。。。继续查吧

Shell中单百分号%和双百分号%%的作用
使用百分号将变量的内容从变量的后面删除,并从变量的尾部删除。
不同的是,一个%号表示从尾部最近的匹配删除,两个%%从尾部最远的匹配删除。同时支持使用通配符。

比如:
先声明一个变量:

filename=aaabbccddaabbccdd
使用一个百分号截取尾部bb*

echo "${filename%bb*}"
结果:

aaabbccddaa
可以看到是截取了最后面的bbccdd。

使用两个百分号截取尾部bb*

echo "${filename%%bb*}"
结果:

aaa
可以看到是截取的最前面的匹配的到的bb。

此段示例直接照搬https://blog.csdn.net/qq_34988540/article/details/102523619

相关文章

网友评论

      本文标题:shell 单个%和两个%%的区别

      本文链接:https://www.haomeiwen.com/subject/vchvmrtx.html