A solução
Use nullglob. Coloque a seguinte linha antes do loop for
:
shopt -s nullglob
nullglob
significa que, se não houver esse arquivo, o glob será removido da lista. Observe sem nulo:
$ echo *.jpg *.JPG *.jpeg
test.jpg *.JPG *.jpeg
Agora, com o nullglob:
$ shopt -s nullglob
$ echo *.jpg *.JPG *.jpeg
test.jpg
Script revisado
O script completo pode ser:
i=1
shopt -s nullglob
for file in *.jpg *.JPG *.jpeg; do
convert "$file" -resize 50x50 "image$i.jpg"
i=$((i+1))
done
Três notas:
-
Na definição de
outputFile
, todas as declaraçõesecho
eram desnecessárias. -
Seguindo a convenção, adicionei uma extensão,
.jpg
, ao seu nome de arquivo de saída. Se você realmente não quer a extensão, apenas remova-a. -
Eu substituo
$[...]
por sua forma mais padrão:$((...))
.