0

我正在尝试创建一个文件夹操作来使用guetzli压缩图像。我正在查看图像文件夹,如果文件名中没有“compp”的图像,我会在其上运行 guetzli。这是脚本。如果我从自动机运行它会很好,但是当我保存它时,它会进入无限循环并创建同一文件的多个版本并添加compp到它,即`test-compp.jp,test-compp-compp.jpg' . 不知道我错过了什么。

for img in "$@"
do
filename=${img%.*}-compp
    /usr/local/Cellar/guetzli/1.0.1/bin/guetzli --quality 85 "$img" "$filename.jpg"
    echo "$img"
done

在此处输入图像描述

4

1 回答 1

1

您缺少检查文件名中是否还没有字符串compp的条件。因此,每次都会创建一个新文件,这将无限期地调用新的执行。

添加条件应该有效,即。

for img in "$@"; do
    [[ $img == *"compp"* ]] && continue
    filename=${img%.*}-compp
    /usr/local/Cellar/guetzli/1.0.1/bin/guetzli --quality 85 "$img" "$filename.jpg"
    echo "$img"
done
于 2018-10-18T08:11:22.993 回答