Вероятно, как вы и подозревали, небольшое изменение, которое нужно исправить, попробуйте вместо этого:
if [[ ! -z "$image" ]]; then
Допустим, когда есть совпадение по exiftool и grep, тогда ваша переменная $ image
содержит следующее:
abcabcabc
Но когда нет вывода, $ image
содержит: (ничего)
В вашем тестовом условии вы had:
if [[ ! -z "$image// }" ]]; then
Итак, в первом случае bash видит следующее:
if [[ ! -z "abcabcabc// }" ]]; then
Но во втором случае bash видит следующее:
if [[ ! -z "// }" ]]; then
Тест говорит , если "//}" НЕ имеет нулевое значение, затем ...
однако "//}"
всегда будет не нулевым значением, это что-то, это строка, состоящая из двух косых черт, пробела и фигурной скобки. Итак, поскольку там что-то есть, что-то не с нулевым значением, поэтому часть , затем
запускается, даже если у вас нет совпадений в $ image
. Итак, удалив этот //}
, он должен работать.