在Linux中从壳牌脚本中显示GUI通知

在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多,对显示各种类型的对话框和通知很有用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Linux 基础