Описание тега corruption
Я не могу найти это в документации, но Зениты, кажется, сделать обратную косую черту экспансия на строки, переданной --текст
, который затем интерпретируется как панго текстовый атрибут разметки, в html-формате. (Спасибо manatwork указывающих на это.)
Во-первых, вы должны поставить кавычки вокруг команды замены, чтобы избежать разложения в исполнении корпуса. Это вообще в Shell-программировании: всегда поставить двойные кавычки вокруг переменной замен и команды замены (т. е. сделать"$foo"
и "$(ФОО)"
), если вы не знаете, почему вы можете и должны оставить их.
Во-вторых, вы должны удвоить все символы, поступающие от приложения, и заменить символы . Вы можете сделать это с помощью sed
.
/usr/Бен/Зениты --ошибка --текст \
"$(/usr/Бен/некоторые-приложения |
СЭД -Е 'С/\\/\\\\/Г' -е 'ы/&/\&амп;/г' -е 'ы/</\&ЛТ;/Г' -Е 'С/>/\&ГТ;/г')"
Строго говоря, это не воспроизвести на выходе отлично от приложения: если есть несколько строк в конце своего выхода, они будут удалены. Стриппинг выполняется подстановка команд оболочки конструкции, поэтому, чтобы избежать этого, вы должны убедиться, что выход замещенного команды не заканчивается символом новой строки.
выход="$(/usr/Бен/какой-приложения | Е С/\\/\\\\/г'; Эхо)"
/usr/Бен/Зениты --ошибка --текст="${выход%в}"
Разница не очень видна в диалоговом окне.