LINUX.ORG.RU

Текст для convert из параметра bash-функции

 ,


0

2

Добрый день.

Вставляю convert в bash-функцию. Вот такая картинка из текста получается нормально:

    convert -fill black \
        -pointsize 42 -font DejaVu-Serif-Bold -draw "$2" \
        -pointsize 14 -font Courier-Oblique -draw 'text 200,560 "Из киноархива N.N. NNN"' \
        "${VDIR}/blank720x576.png" "${VDIR}/header$1.png"

В качестве $2 подставляется что-то типа

'text 150,240 "8. На озере"'

И так всё работает...

А нельзя ли пойти дальше и оставить в $2 только содержательную часть, а text 150,240 пусть будет внутри функции, что-то типа

-draw 'text 150,240 "$1"'

Вот так, как я это написал - оно не работает. Я так понимаю, это из-за того, что кавычки внутри апострофов, и при передаче туда ещё и параметров начинается Содом и Гоморра с экранированием символов. В принципе, не смертельно, просто в переменную часть (вызов функции) многовато мусора выносится.

Но может, это можно как-то разрулить?

★★★★★

Последнее исправление: hobbit (всего исправлений: 1)

hobbit ★★★★★
★★★★★

Приплыли. Даже просто читая тех. раздел форума за время набора 5 звезд можно было выучить все приемы работы с башем

> -draw 'text 150,240 "$1"'

-draw 'text 150,240 "'$1'"'     =====> "' <==== дв. кавычка + апостраф

anonymous
()
Ответ на: комментарий от anonymous

Ты хочешь сказать, что кавычки и апострофы можно рекурсивно вкладывать друг в друга сколько угодно раз? Я думал, только по одному уровню.

Спасибо, с предложенным вариантом начало получаться. Вот только параметры с пробелами некорректно обрабатываются. Пишу «Иванов И.И.» или Иванов\ И.И. - всё равно схватывается только первое слово.

В тех скриптах, которые я писал раньше, кавычки при вызове помогали (но там не было такой двойной вложенности ВНУТРИ функции, может, дело в этом).

Приплыли.

Нельзя объять необъятное. Баш мне нравится, но он, к сожалению, всё же не основная область моих интересов. Поэтому могу тупить, в т.ч. иногда в элементарных вопросах.

hobbit ★★★★★
() автор топика
Ответ на: комментарий от hobbit

Ты хочешь сказать, что кавычки и апострофы можно рекурсивно вкладывать друг в друга сколько угодно раз?

Нет. Он написал бред с неэкранированным $1.

-draw "text 150,240 \"$1\""
shdown
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.