ImageMagick转换循环挂起

时间:2011-04-13 14:24:11

标签: linux bash

我正在运行一个脚本,用于调整文件夹及其子目录中的所有图像(如果尺寸具有特定大小)。在获得大约1,000-2,000张图像后,该脚本挂在“转换”行上。 (它所挂的确切图像每次都不同。)

#! /bin/bash

for f in $(find . -wholename "./raw/*.jpg"); do
    # fwidth, fheight, outputdir, filename variables defined...

    if [ "$fwidth" -gt 1000 ] || [ "$fheight" -gt 1000 ]; then
        convert -resize 60% -quality 92 -unsharp 0x0.5 $f ${outputdir}/${filename};
    else
        cp $f ${outputdir}/${filename};
    fi
done

1 个答案:

答案 0 :(得分:1)

首先更详细地描述“悬挂”的含义。它会停止执行吗? convert一段时间内CPU使用率是否达到100%?还有别的吗?

然后开始调试脚本。请添加一些调试输出并尝试使用bash -x script.sh运行脚本,该脚本应输出实际运行的所有命令。

#! /bin/bash

for f in $(find . -wholename "./raw/*.jpg"); do
    echo "=========== processing file $f"
    # fwidth, fheight, outputdir, filename variables defined...

    if [ "$fwidth" -gt 1000 ] || [ "$fheight" -gt 1000 ]; then
        convert -verbose -resize 60% -quality 92 -unsharp 0x0.5 $f ${outputdir}/${filename};
    else
        cp -v $f ${outputdir}/${filename};
    fi
done