Я не могу найти это в документации, но Zenity, кажется, делает, расширение обратной косой черты на строке передало --text
, который затем интерпретируется как текстовая Разметка Атрибута Pango, подобный HTML формат. (Благодаря manatwork для указания на это.)
Во-первых, необходимо поместить двойные кавычки вокруг замены команды, для предотвращения расширений, выполненных оболочкой. Это является общим в программировании оболочки: всегда помещайте двойные кавычки вокруг подстановок переменных и управляйте заменами (т.е. "$foo"
и "$(foo)"
), если Вы не знаете, почему Вы можете и должны оставить их.
Во-вторых, необходимо удвоить все обратные косые черты, прибывающие из приложения, и заменять символы. Можно сделать это с sed
.
/usr/bin/zenity --error --text \
"$(/usr/bin/some-application |
sed -e 's/\\/\\\\/g' -e 's/&/\&/g' -e 's/\</g' -e 's/>/\>/g')"
Строго говоря это не воспроизводит вывод из приложения отлично: если будет несколько новых строк в конце его вывода, то они будут разделены. Разделение выполняется конструкцией замены команды оболочки, так для предотвращения этого, необходимо удостовериться, что вывод замененной команды не заканчивается в новой строке.
output="$(/usr/bin/some-application | sed 's/\\/\\\\/g'; echo a)"
/usr/bin/zenity --error --text="${output%a}"
Различие не будет очень видимо в диалоговом окне все же.
Тогда решением было использование [1188658]Соуси (Ubuntu 13.10) Кернела [1188659], который основан на 3.11, а не на ванильном/основном. Некоторые изменения, вероятно, нарушили совместимость, по крайней мере, с моей комбинацией аппаратного и программного обеспечения.[1188188].
Вы проблема кажется, что связана с этой конкретной проблемой с ноутбуками Samsung + UEFI + Linux.
Я искал на Вашей конкретной модели # и не нашел ничего, что выскочило как потенциальный источник Вашей проблемы. Таким образом, я не думаю, что это, широко знают проблему, по крайней мере, в этой точке, таким образом, Ваш следующий план действий должен отладить проблему.
Вот порядок вещей попробовать.
подробный
В течение фазы загрузки добавьте следующий параметр ядра к списку.
linux ..... verbose
отладка
Если verbose
аргумент не проливает света, который следующий уровень, который проверит, debug
.
linux ..... debug
другие
Существует несколько уровней кроме того, но давайте не обгонять нас. Давайте попробуем вышеупомянутое сначала и посмотрим, показывают ли они, где Ядро зависает.