我正在尝试编写脚本,它将裁剪大尺寸照片并将其调整为高清壁纸。BASH中带空格的文件名
#! /bin/bash
for i in `ls *.jpg`
do
width=`identify -format '%w' $i`
height=`identify -format '%h' $i`
if [ `echo "$width/$height > 16/9" | bc -l` ]
then
exec `convert $i -resize 1920 -gravity Center -crop '1920x1080+0+0' +repage temp`
else
exec `convert $i -resize x1080 -gravity Center -crop 1920x1080+0+0 +repage temp`
fi
rm $i
mv temp $i
done
但似乎脚本有具有文件名的空格(翻滚Weed.jpg)的问题。我怎样才能解决这个问题?
答案已经在下面给出,但我只想补充说,shell脚本对于处理文件名中的空格非常不利,因为太多的列表是空格分隔的 - 特别是命令参数。例如,尝试通过scp复制带有空间的文件!没有手动转义几乎是不可能的。 – Timmmm 2010-10-19 11:30:10
您应该完整阅读'http:// mywiki.wooledge.org/BashPitfalls' :-)它将大大提高您的bash技能 – Benoit 2010-10-19 16:08:01