Эта команда из ImageMagic создает изображение, записывающее значение переменной var в его центре:
convert -size 512x512 xc:none -font "Free-Monospaced-Bold" -pointsize 180 -gravity center -draw 'text 0,0 '"$var"' ' "$var".png
Хотя он хорошо работает для строк, он не работает, когда значение var является числом:
convert-im6.q16: non-conforming drawing primitive definition `text' @ error/draw.c/DrawImage/3265.
Поскольку переменные в bash не типизированы, нет способа преобразовать их в строку (команда printf оставит это как есть, число), поэтому нужно изменить аргумент text в команде.
Как сгенерировать изображение, если переменная числовая (положительные, отрицательные и действительные числа)?





Хотя документация для оператора -drawtext говорит только о том, что строка для рендеринга должна быть заключена в кавычки, если в ней есть пробелы, похоже, ее также необходимо заключить в кавычки, если она числовая. Так...
-draw "text 0,0 '$var' "
Вы также можете вставить число в изображение в Imagemagick, используя -annotate вместо -draw.
var=7
convert -size 512x512 xc:none -font "Free-Monospaced-Bold" -pointsize 180 -gravity center -annotate +0+0 "$var" "$var".png
Or
var=7
convert -size 512x512 xc:none -font "Free-Monospaced-Bold" -pointsize 180 -gravity center -annotate +0+0 $var $var.png
Но безопаснее всего использовать двойные кавычки