題 有沒有辦法在Ubuntu中顯示來自bash腳本的通知?


大多數應用程序可以在屏幕右上角顯示的事件上顯示格式良好的通知。我即將編寫一個bash腳本,它將在後台執行童話般的處理,我真的想知道它何時完成。如何從bash腳本中顯示好的通知?


96
2017-08-29 10:31


起源


如何在作業/流程結束時觸發通知? - phuclv


答案:


如果您在Jaunty中使用新的通知系統,那麼您需要 通知,發送 命令

notify-send - a program to send desktop notifications

SYNOPSIS

With notify-send you can sends desktop notifications to the user via
a notification daemon from the command line.  These notifications can be
used to inform the user about an event or display some form of information
without getting in the user's way.

OPTIONS

-u, --urgency=LEVEL
Specifies the urgency level (low, normal, critical).

-t, --expire-time=TIME
    Specifies the timeout in milliseconds at which to expire the notification.
-i, --icon=ICON[,ICON...]
    Specifies an icon filename or stock icon to display.
-c, --category=TYPE[,TYPE...]
    Specifies the notification category.

110
2017-08-29 10:35



謝謝,我自己找到了:) apt-get install libnotify-bin必須先運行才能得到它。 - vava
root用戶如何從crons,init.d等發送消息? - Lance Caraccioli
例如:notify-send測試“Hello World” - Thaha kp
由於這個“功能”(bug), - expire-time參數在Ubuntu上不起作用。 bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/390508 - axiopisty
我找到 notify-send 視頻/音頻播放期間禁止播放。雖然這是一個有效的用例,但如果你仍然希望看到它們 --urgency =臨界 必須添加。 - ccpizza


找到另一種方式,通過 Zenity

echo 'message:hi' | zenity --notification --listen

(這也有已經安裝在Ubuntu上的好處。)


25
2017-08-29 11:14



我喜歡Zenity,它支持對話框的用戶交互(與notify-send不同) - Waffle's Crazy Peanut


還有 xmessage 這將彈出一個窗口,因此它應該適用於任何X11系統。

優點: 它還允許用按鈕交互式地提示用戶。

缺點: 像任何彈出警報一樣 一般 獲得焦點,所以如果你正在打字,它會在你閱讀消息之前消失。


11
2017-10-23 22:32



Con:它看起來很醜陋,也是一個超級微小的窗口,對用戶來說並不總是顯而易見的。無論如何,它是普遍的。 :) - Nik Reiman
但是,xmessage在Fedora中不起作用。它默認不安裝。 - Abhay Mittal
它在Arch Linux的默認Xorg安裝中也不可用。 - friederbluemle
您還可以通過“確定”和“取消”按鈕獲得一個彈出窗口 notify-send --expire-time=0 "Hello World" 要么 notify-send -t 0 "Hello world"。否則,不然 -t 由於一些愚蠢的“設計決策”,選項被忽略: askubuntu.com/questions/110969/notify-send-ignores-timeout - Gabriel Staples
我無法接受;我不得不寫自己的答案:) superuser.com/a/1310142/425838 - Gabriel Staples


對於KDE用戶:

$ kdialog --title "Long process completed!" --passivepopup "This popup will disappear in 5 seconds" 5 &

10
2017-08-29 21:14



是否可以為通知設置圖標? - Malabarba


存在一種稱為跨平台的解決方案 Yfiton

$ yfiton -n desktop -Pmessage="Lunch time!" -Pposition=TOP_RIGHT

3
2018-01-11 20:10





10秒後自動關閉的彈出通知:

notify-send "Hello world"

資源: https://superuser.com/a/31919/425838

帶有按鈕的彈出窗口單擊:

[窗口無法自動對焦]

notify-send -t 0 "Hello world"

來源:我自己;注意: -t  除了0之外的所有值都被忽略 - 多麼愚蠢。 :(


要么
[窗口自動對焦]

zenity --info --title "Hello" --text "World"

資源: https://askubuntu.com/a/804475/327339


要么

[我最喜歡,因為窗口在指定後自動關閉 --timeout 很快]

zenity --info --title "Hello" --text "World" --timeout=2

資料來源:我自己閱讀手冊頁: man zenity


要么
[超級難看]

xmessage 'hello world'

資源: http://www.linux-commands-examples.com/xmessage


2
2018-04-02 18:11





在shell腳本中,您還可以從libxosd調用osd_cat實用程序。


1
2017-08-29 12:51



這有點不同,因為它不使用ubuntu桌面通知。 - vava
是的,這是一個可以用於任何Linux發行版和任何WM / DE的替代方案。 - geek