Я запускаю сценарий оболочки, который зацикливает более 12 000 изображений, сравнивая каждое из них со своим двойным изображением в другом каталоге.Проблема заключается в том, что когда двойное изображение не существует, Imagemagick просто умирает и сообщает об ошибке, но я не могу получить ручку для него, чтобы сделать запись в журнале об ошибке.
Код, который я пытаюсь:
#!/bin/bash
compare -metric AE -fuzz 1% /opt/fotos/239413.bmp /opt/fotos/549005.bmp -compose Src imgdiff.bmp
result="$?"
if [ "$result" -ne 0 ]; then
echo "Your command exited with non-zero status $result"
fi
exit 0
Вот в чем проблема, поскольку ImageMagick возвращает
compare-im6.q16: image widths or heights differ `/opt/fotos/239413.bmp' @ error/compare.c/CompareImageCommand/1000.
Теперь я ожидаю, что $ result будет содержать эту строку, но bash ожидает 0-255.Просто для того, чтобы вы знали, что сама команда отлично работает, когда есть изображения для сравнения, возвращая количество пикселей, которые отличаются, поэтому команда работает по желанию.
Это просто, когда происходит ошибка, и Imagemagick умирает.Так где я здесь не так?