libotify / notify-send:如果正文包含“<”或“>”,則不列印正文
我在 Linux Mint 18.1 上,MATE。
我正在使用 notify-send 命令來視覺化鍵的名稱(例如
<enter>
),同時通過 python 腳本將它們發送到目前視窗。大約兩週,notify-send 表現出奇怪的行為。我知道 bash 的基本語法是notify-send [OPTIONS] <summary> [body]
.基本問題
執行時
notify-send -t 0 '<enter>' 'text body'
,一切看起來都很好:但是,當嘗試使用 列印消息正文中的鍵名時
notify-send -t 0 'Summary' '<enter>'
,我得到:同樣的情況發生在
notify-send -t 0 'Summary' '<'
,notify-send -t 0 'Summary' '>'
或notify-send -t 0 'Summary' \<
如果正文包含 < 或 > ,為什麼正文列印為空白的任何想法?
解決方法(失敗)
我嘗試使用 python 模組代替:
from gi.repository import Notify Notify.init("App Name") Notify.Notification.new("Summary","<enter>").show()
但結果與上面的圖 2 相同。
附加資訊:
在 bash 中嘗試
zenity --info --title='Summary' --text='<enter>'
時,我收到一條錯誤消息:
(zenity:4952): Gtk-WARNING **: Failed to set text '<enter>' from markup due to error parsing markup: Error on line 1 char 24: Element 'markup' was closed, but the currently open element is 'enter'
而不是 text
<enter>
,打開的資訊對話框有令人驚訝的文本:All updates are complete.
通知規範說正文可以包含簡單的標記,因此如果可能,“<…>”中的任何標籤都將被刪除和解釋。例如,
"<b>hello</b>"
將以粗體顯示單詞。您可以使用標準的 html 實體機制並顯示一個
<
with<
和>
with>
give,例如,notify-send 'Summary' '<enter>'
如果您願意,可以只使用多行摘要,例如:
notify-send 'Summary <enter>'