使用 Guetzli 监视文件夹和压缩 jpeg 的 Automator 脚本

Automator Script to watch folder and compress jpegs with Guetzli

我正在尝试创建文件夹操作以使用 guetzli 压缩图像。我正在查看图像文件夹,如果文件名中有没有 'compp' 的图像,我会在上面添加 运行 guetzli。这是脚本。如果我从 automator 运行 它很好用,但是当我保存它时,它会进入无限循环并创建同一文件的多个版本并向其添加 compp,即 `test-compp.jp, 测试-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

您缺少检查文件名中是否没有字符串 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