我正在使用这一行来批处理我的pngcrush
,但我的文件包含空格,这些空格按字面意思放在$line
中,使它们被跳过,因为它们不是有效的路径:
ls *.png | while read line; do pngcrush -brute $line compressed/$line; done
如何使 $line 成为转义,就像这个文件Button - Users.png
名将被替换Button\ -\ Users.png
?
不要解析ls
. 在此处使用for
循环。
for f in *.png; do
pngcrush -brute "$line" compressed/"$line"
done
只需用双引号将变量括起来。这是一个很好的做法:
ls *.png | while read line; do pngcrush -brute "$line" "compressed/$line"; done