我想压缩图像文件,并编写了以下bash脚本:
for i in *.png; do convert $i -quality 100% $i-comp.jpeg; done;
当我运行它时,我会得到像48.png-comp.jpeg
这样的文件名。我只想有类似的48-comp.jpeg
,所以基本上删除了文件名的.png
部分。
我尝试使用这个${$i/.png/}
,它给了我一条错误消息。
有什么建议吗?
${$i/.png/}
几乎是正确的,但在参数扩展中不需要第二个$
。
#!/bin/bash
for i in *.png; do
convert "$i" -quality 88% "${i/.png/}-comp.jpeg"
done
注意:${i%.png}
通常比${i/.png/}
更用于删除文件扩展名,但两者应该产生相同的输出。
您可以使用参数扩展来去除输出文件名的png扩展名:
for i in *.png; do convert $i -quality 100% ${i%.png}-comp.jpeg; done