将所有png,jpeg,jpg转换为jpg并使用imagemagick压缩它们

我几乎有这个代码:

for PHOTO in /home/dvms/Desktop/projs/others/tests/gulp_test/src/images/*.{png,jpeg,jpg} do BASE=`basename $PHOTO` convert "$PHOTO" -quality 50% "/home/dvms/Desktop/projs/others/tests/gulp_test/src/imagesCompressed/$BASE.jpg" done 

但是输出文件与旧的文件扩展名一起出现,最后附加了“.jpg”,例如:imageA.png.jpg。

怎么解决这个?

替换线:

 BASE=`basename $PHOTO` 

有了这个:

 BASE=`basename $PHOTO | cut -d. -f1` 

然后再试一次。

将代码修改为此表单:

 for PHOTO in /home/dvms/Desktop/projs/others/tests/gulp_test/src/images/*.{png,jpeg,jpg} do BASE=$(basename $PHOTO) convert "$PHOTO" -quality 50% "/home/dvms/Desktop/projs/others/tests/gulp_test/src/imagesCompressed/${BASE%.*}.jpg" done 

而不是这个$BASE.jpg使用${BASE%.*}然后添加扩展名。