दुर्भाग्य से, आप notify-osdसूचनाओं को स्पष्ट या "खारिज" नहीं कर सकते । आपके पास ज़ेनिटी का उपयोग करने से बेहतर भाग्य हो सकता है ; इसके पास नोटिफ़िकेशन-सेंड से अधिक विकल्प हैं ।
--timeoutकुछ सेकंड बीतने के बाद आप अधिसूचना को खारिज करने के विकल्प का उपयोग कर सकते हैं ।
zenity --info --timeout=5 --title="Test Notification" --text "$(date +%Y%m%d-%H%M%S): My notification"
आप पिछली अधिसूचनाओं की प्रक्रिया आईडी (एक पर्यावरण चर या फ़ाइल में) की एक सूची भी रख सकते हैं और उन्हें HUPएक नया अधिसूचना प्रदर्शित करने से पहले उन्हें खाली करने के लिए एक संकेत भेज सकते हैं ।
i=0
pids=
for x in $(seq 1 5); do
i=$((i + 1))
zenity --info --title="Test Multiple Notifications" --text "$(date +%Y%m%d-%H%M%S): Notification number $i" &
pids+="$! "
done
sleep 5
for p in $pids; do kill -HUP $p >/dev/null 2>&1; done
i=$((i + 1))
zenity --info --timeout=2 --title="Test Multiple Notifications" --text "$(date +%Y%m%d-%H%M%S): Notification number $i" &
या zenityनई अधिसूचना प्रदर्शित करने से पहले सभी प्रक्रियाओं को मार दें :
killall zenity
zenity --info --title="Test Notifications" --text "$(date +%Y%m%d-%H%M%S): My notification" &
या zenityएक नई अधिसूचना प्रदर्शित करने से पहले कुछ प्रक्रियाओं को मार डालो :
ps ho pid,args | grep -i 'zenity.\+--title=test notifications' | sed -e 's/^ *\([0-9]\+\).*$/\1/'
zenity --info --title="Test Notifications" --text "$(date +%Y%m%d-%H%M%S): My notification" &
zenityकहीं अधिक खराब सेट हैnotify-send। और यह किसी भी तरह से समस्या को हल नहीं करता है, क्योंकि यह पहले से ही भेजे गए सूचनाओं पर नियंत्रण नहीं देता है।