Desktop-Notiz mit "remind"

OS: Debian 12.9 (stable)
DE: Cinnamon 5.6.8
remind: 04.02.03

Ich habe mir folgendes Skript eingerichtet, das bei jedem Start meines Rechners ausgeführt wird:

#!/bin/bash
notify-send Geburtstag "$(remind -h ~/.reminders | tail -2)"
exit

Die Datei „.reminders“, die von diesem Skript gelesen wird,

besteht aus einer Liste mit Einträgen in folgendem Format:

REM 15 Sep MSG Hans Müller wird heute 45 Jahre alt.

Am 15. September erscheint dann auf meinem Rechner folgende Notiz:

RemindEintrag

An Tagen, an denen die Liste keinen Eintrag enthält, erscheint folgende Notiz:

RemindLeer

Ich habe nun folgende Frage: Wie muss ich mein Skript ändern/ergänzen, damit
nur an den Tagen, an denen in der Liste ein Eintrag enthalten ist, eine Notiz
erscheint, an den übrigen Tagen aber nichts (statt der leeren Notiz)?

Vielen Dank für jeden Hinweis.

Beides ungetestet. Sollte aber klappen, sofern die Ausgabe von remind -h ~/.reminders | tail -2 leer ist, wenn kein Geburtstag ist. -n ist nämlich erfolgreich, wenn der String eine Länge von mehr als 0 hat.

Gut lesbar:

#!/bin/sh
geburtstag="$(remind -h ~/.reminders | tail -2)"
if [ -n "${geburtstag}" ]; then
	notify-send Geburtstag "${geburtstag}"
fi

Oder „code golf“:

#!/bin/sh
geb="$(remind -h ~/.reminders | tail -2)"
[ -n "$geb" ] && notify-send Geburtstag "$geb"

Hallo bummelstein,

vielen Dank für die schnelle und hilfreiche Antwort. Die obere Version funktioniert und ist genau das, was ich gesucht habe. (Beim „code golf“ erscheint keine Anzeige.)

Mist, dann hat es die Anführungszeichen doch gebraucht. Das Code Golf sollte nun auch funktionieren, aber bleib ruhig bei dem Oberen. :slight_smile:

Hallo bummelstein,

ich habe es gerade ausprobiert: Beide Versionen funktionieren jetzt einwandfrei. Nochmals vielen Dank für deine Hilfe.