Как я могу использовать mogrify для нацеливания на определенное значение в пикселях наибольшего размера, чтобы, если по вертикали установить высоту на «x», а если по горизонтали, установить ширину на «x»

Вы можете использовать здесь документ:

while IFS= read -r SINGLELINE
do
  SOMEVAR="updated value"
  printf '%s\n' "this is a single line: ${SINGLELINE}"
  printf '%s\n' "SOMEVAR is now: ${SOMEVAR}"
done << EOF
$MULTILINE
EOF
printf '%s\n' "Final SOMEVAL is still $SOMEVAR"

В зависимости от реализации sh, здесь -документы реализованы либо как удаленный временный файл, в котором оболочка заранее сохранила расширение переменной, за которым следует перевод строки, либо как канал, в который оболочка передает расширение переменная, за которой следует новая строка. Но в любом случае, за исключением оригинальной оболочки Bourne (, которая больше не используется в наши дни и не является POSIX-совместимой оболочкой ), перенаправляемая команда не выполняется в подоболочке (, как POSIX. требует ).

или вы можете использовать split+glob:

IFS='
' # split on newline only
set -o noglob
for SINGLELINE in $MULTILINE
do
  SOMEVAR="updated value"
  printf '%s\n' "this is a single line: ${SINGLELINE}"
  printf '%s\n' "SOMEVAR is now: ${SOMEVAR}"
done
printf '%s\n' "Final SOMEVAL is still $SOMEVAR"

Но будьте осторожны, он пропускает пустые строки.

1
03.06.2020, 18:04
0 ответов

Теги

Похожие вопросы