Я относительно новичок в Bash. Я написал скрипт для генерации изображений с помощью утилиты montage
из imagemagick, читая список файлов png из текстового файла:
IFS=$'\n'
count=1
for line in `cat pngListGr4`;
do
montage -tile 4x0 $line $(printf "%03d" $count).png
((count=count + 1))
done
unset IFS
, где файл pngListGr4 выглядит так:
01.png 02.png 03.png 04.png
05.png 06.png 07.png 08.png
...
Следовательно, я ожидал создать файлы 001.png и 002.png в качестве монтажа файлов 1-4 и 5-8. Но вместо этого я получаю сообщение об ошибке:
montage-im6.q16: отсутствует имя файла изображения `001.png '@ error / montage.c / MontageImageCommand / 1795.
Однако следующий код прекрасно работает в терминале:
$ string_="01.png 02.png 03.png 04.png"
$ montage -tile 4x0 $string_ $(printf "%03d" $count).png
Почему моя подстановка строк в моем bash-скрипте приводит к таким проблемам?