当前位置: 首页>>技术教程>>正文


linux – 有没有办法在Ubuntu中显示来自bash脚本的通知?

, ,

问题描述

大多数应用程序可以对出现在屏幕右上角的事件显示格式正确的通知。我将要编写一个bash脚本,该脚本将在后台进行童话般的长时间处理,我真的很想知道它何时完成。如何显示来自bash脚本的通知?

最佳方法

如果您在Jaunty中使用新的通知系统,则需要notify-send命令

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.

次佳方法

找到另一种方式,通过Zenity

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

(这也具有已经在Ubuntu上安装的好处。)

第三种方法

还有xmessage,它将为pop-up一个窗口,因此它可以在任何X11系统上运行。

优点:还可以通过按钮交互式地提示用户。

缺点:像任何pop-up警报一样,它通常会获得焦点,因此,如果您正处于键入过程中,它可能会在阅读消息之前消失。

第四种方法

对于KDE用户:

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

第五种方法

10秒后弹出通知auto-closes:

notify-send "Hello world"

资料来源:https://superuser.com/a/31919/425838

带有单击按钮的弹出窗口:

[窗口没有显示auto-focus]

notify-send -t 0 "Hello world"

资料来源:我自己;注意:-t is ignored for all values except 0–how stupid。 🙁


或[窗口获取auto-focus]

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

资料来源:https://askubuntu.com/a/804475/327339


要么

[我的最爱,因为窗口auto-closes在指定的--timeout之后以秒为单位]

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

来源:本人阅读手册页:man zenity


或[超级ugly-looking]

xmessage 'hello world'

资料来源:http://www.linux-commands-examples.com/xmessage

第六种方法

存在一个称为Yfiton的cross-platform解决方案:

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8195.html,未经允许,请勿转载。