0

我正在使用这一行来批处理我的pngcrush,但我的文件包含空格,这些空格按字面意思放在$line中,使它们被跳过,因为它们不是有效的路径:

ls *.png | while read line; do pngcrush -brute $line compressed/$line; done

如何使 $line 成为转义,就像这个文件Button - Users.png名将被替换Button\ -\ Users.png

4

2 回答 2

6

不要解析ls. 在此处使用for循环。

for f in *.png; do
    pngcrush -brute "$line" compressed/"$line"
done
于 2016-04-27T11:48:36.957 回答
-2

只需用双引号将变量括起来。这是一个很好的做法:

ls *.png | while read line; do pngcrush -brute "$line" "compressed/$line"; done
于 2016-04-27T11:31:20.107 回答