是否可以取消或清除使用notify-send创建的通知?

所以我写了一个小脚本,确保某个用户在登录时插入笔记本电脑(如果没有则禁用)。 该脚本使用notify-send告诉他将其插入。如果他将其插入,脚本将退出。 是否可以在插入通知时自动清除通知? 我想它可能需要以某种方式获取由notify-send产生的进程id并杀死该PID,但我不知道如何做到这一点。

这是当前的脚本:

#!/bin/bash cat /sys/class/power_supply/BAT0/status OUTPUT="$(cat /sys/class/power_supply/BAT0/status)" echo "${OUTPUT}" if [ "${OUTPUT}" = "Charging" ] || [ "${OUTPUT}" = "Unknown" ]; then echo charging or full elif [ "${OUTPUT}" = "Discharging" ]; then notify-send -i /home/evamvid/Documents/Programming/OokiNoUse/power25.png "Hey there brother" "plug it in" COUNTER=0 while [ "$COUNTER" -le 12 ] do cat /sys/class/power_supply/BAT0/status OUTPUT="$(cat /sys/class/power_supply/BAT0/status)" echo "${OUTPUT}" if [ "${OUTPUT}" = "Charging" ] || [ "${OUTPUT}" = "Unknown" ]; then exit elif [ "${OUTPUT}" = "Discharging" ]; then COUNTER=$(($COUNTER+1)) echo $COUNTER sleep 1 fi done fi 

您正在寻找的流程是notify-osd 。 你可以通过以下命令杀死它:

 pkill notify-osd 

或者通过它的pid:

 kill $(ps -e | grep notify-osd | awk '{ print $1 }') 

或者,甚至更好,正如@kos所建议的那样(谢谢!),使用pgrep

 kill $(pgrep ^notify-osd$)