在Linux中从壳牌脚本中显示GUI通知
在Linux中,有几种方法可以从shell脚本中显示GUI通知,但一种常见的方法是使用notify-send命令。这个命令是libnotify库的一部分,通常预装在大多数Linux发行版上。
如何使用notify-send来显示一个标题为 “Hello”、信息为 “World “的通知的例子是–
notify-send "Hello" "World"
你可以在你的shell脚本中使用该命令,只需添加该命令即可,或者将通知文本分配给一个变量并使用它
message="This is your reminder"
notify-send "Reminder" "${message}"
此外,你可以使用各种选项自定义通知的外观和行为,如指定图标、设置紧急程度或控制通知的持续时间。
使用notify-send命令
notify-send命令用于从命令行或脚本中显示一个GUI通知。该命令的基本语法如下 –
notify-send [options] <title> <message>
其中<title>
是通知的标题,<message>
是通知的正文。
下面是你可以在notify-send命令中使用的一些常用选项–
-u, –urgency=LEVEL - 指定通知的紧急程度。LEVEL可以是 “低”、”正常”、”关键 “中的一个。
-t, –expire-time=TIME - 指定通知的持续时间,以毫秒为单位。
-i, –icon=ICON - 指定与通知一起使用的图标。
-c, –category=TYPE - 指定通知类型(例如,”电子邮件”,”im”)。
-h, –hint=TYPE:NAME:VALUE。 - 指定要传递给通知服务器的提示。
你可以用这样一个例子—
notify-send -u critical -t 5000 -i /path/to/icon.png "Title" "The message"
这个命令将显示一个5秒后失效的关键通知,并使用位于/path/to/icon.png
的图标。
从我们的壳牌脚本中发送通知
你可以通过使用notify-send命令从你的shell脚本中发送通知,就像在命令行中一样。下面是一个简单的shell脚本的例子,它发送的通知的标题是 “脚本完成”,信息是 “脚本已完成运行”-
#!/bin/bash
# your script commands go here
# send the notification
notify-send "Script Complete" "The script has finished running"
你也可以使用变量来存储通知的标题和信息,然后把它们传递给notify-send命令。
#!/bin/bash
# your script commands go here
# define the title and message
title="Script Complete"
message="The script has finished running"
# send the notification
notify-send "title" "message"
#!/bin/bash
# your script commands go here
# Define the title and message
title="Task Failed"
message="The task has failed to run"
if task_status -eq 0; then
title="Task Complete"
message="The task has been completed successfully"
notify-send -u normal "title" "message"
else
notify-send -u critical "title" "message"
fi
这个脚本将检查任务的状态。如果任务成功完成,它将发送一个正常的通知,标题为 “任务完成”,信息为 “该任务已成功完成”,否则它将发送一个关键通知,标题为 “任务失败”,信息为 “该任务未能运行”。
使用zenity工具
在Linux中从shell脚本中显示GUI通知的另一个方法是使用zenity工具。zenity是一个命令行工具,允许你在命令行和shell脚本中显示GTK+对话框。它可以用来显示各种对话框,包括警报、错误信息和问题提示。
下面是一个例子,说明如何使用zenity来显示一个标题为 “你好”、信息为 “世界 “的通知-
zenity --info --title="Hello" --text="World"
你也可以使用–警告、–错误、–问题选项代替–信息来显示不同类型的通知。–title选项设置对话框的标题,而–text选项则设置对话框的文本。
你也可以使用zenity来显示带有进度条的通知,例如——。
(for i in {1..100}; do echo $i; sleep 0.1; done) | zenity --progress --title="Title" --text="Your process is running" --auto-close --auto-kill
这个命令将显示一个进度条,在达到100%后关闭并杀死自己。
你可以在你的shell脚本中使用zenity命令,就像你在命令行中使用它一样,只要把它添加到你的脚本中并传递任何必要的选项和参数即可。
从我们的壳牌脚本中显示对话和通知
zenity是一个命令行工具,可以用来在图形用户界面(GUI)中从shell脚本显示各种类型的对话框和通知。
下面是一些不同类型的对话框和通知的例子,你可以使用zenity显示—-。
信息对话 –
zenity --info --title="Hello" --text="World"
警告对话框 –
zenity --warning --title="Warning" --text="This is a warning message"
错误对话框-
zenity --error --title="Error" --text="An error has occurred"
问题对话框 –
zenity --question --title="Question" --text="Do you want to continue?"
文本输入对话框 –
zenity --entry --title="Enter your name" --text="Please enter your name"
文件选择对话框 –
zenity --file-selection --title="Select a file" --file-filter='*.txt'
列表对话
zenity --list --title="Select an option" --column "Option" --column "Description" --print-column=2 "Option 1" "This is the first option" "Option 2" "This is the second option" "Option 3" "This is the third option"
你可以在你的shell脚本中使用zenity命令,只需把它添加到你的脚本中,并传递任何必要的选项和参数。
你也可以在你的脚本中使用zenity命令的输出,把它储存在一个变量中,例如 –
response=(zenity --question --title="Question" --text="Do you want to continue?")
if [ "response" = "0" ]; then
# user clicked OK
else
# user clicked Cancel
fi
请记住,zenity需要在系统中安装GTK+库,它可能在一些极简主义发行版中不存在,如果是这样的话,你可能需要手动安装它。
结论
在Linux中,有几种方法可以从shell脚本中显示GUI通知和对话框,包括使用notify-send命令和zenity工具。notify-send是一个命令行工具,可以用来发送桌面通知,它通常预装在大多数Linux发行版上。另一方面,zenity是一个命令行工具,可以用来在命令行和shell脚本中显示GTK+对话框,它提供的选项比notify-send多,对显示各种类型的对话框和通知很有用。