Use aspas duplas em torno das variáveis para impedir a divisão de palavras.
Você pode fazer:
for file in "${FILES[@]}"; do
if [[ $file == /* ]] && [[ -f $file ]]; then
convert -units PixelsPerInch -density "${dpi}"x"$dpi" \
-geometry "$g"! -quality 100 "$file" "$file"."JPG"
fi
done
Note que você não precisa citar variáveis dentro de [[
, pois é uma palavra-chave do shell.
Além disso, você deve usar aspas duplas em torno da substituição de comandos $()
, pois elas também sofrem com a divisão de palavras.