Ich kannte send-notify noch gar nicht und habe die Suchmaschine meiner Wahl damit beauftragt mir informationen darüber bereit zu stellen. Die ersten paar Ergebnisse die ich mir angeschaut habe enthielten alle diese Fehlinformation.
Ja, das $number war nur ein Tippfehler. 
Und das "zypper refresh" vor dem "zypper lu -t package" scheint mir doch sinnvoll, jedenfalls so wie ich mir das zusammengebastelt habe. Ich kenn mich ja wie gesagt bei Suse noch nicht aus, jedenfalls kam vorhin beim Aufruf von "zypper lu" die Ausgabe (frei nach Gedächtnis)
Repo XY Daten sind nicht aktuell, führe zypper refresh aus um Daten zu aktualisieren
genau auf sowas wollte ich ja hinaus. 
Und da mein Script die Zeilen Zählt die "zypper lu" ausgibt und davon abhängig macht ob es eine Ausgabe macht oder nicht ist das refresh vorher sinnvoll, da falls es zu dem oben geschilderten Fall kommt,
die anzahl der ausgegebenen Zeilen anders ist und so das Script nicht mehr funktioniert. (bei keinen vorhandenen Update sind es 3 Zeilen)
Das ist zwar nicht gerade eine elegante Lösung, aber sie funktioniert. Man könnte die Option "--xmlout"
nutzen und dann aus der Ausgabe irgendwie herausfiltern ob Updates vorhanden sind oder nicht, aber das war mir zu kompliziert, weil ich mich da nicht auskenne. 
wenns noch wen interessiert hier das Script
cat /usr/local/bin/check-updates
#!/bin/bash
pkgs=$(zypper lu -t package | wc -l)
if [ $pkgs -gt 3 ]; then
notify-send -i /usr/local/share/GreenToy.png "Aktualisierungen" "Es sind neue Pakete verfügbar."
fi
Alles anzeigen
habe doch send-notify genommen weil man da ein Icon angeben kann. 
das "zypper ref" ist ein root cron job
01 * * * * /usr/bin/zypper -q refresh
und 4 minuten später dann das Script als user cronjob
05 * * * * DISPLAY=:0 /usr/local/bin/check-updates
Mal sehen ob es auf dauer funktioniert, oder ob noch irgendwas, was ich noch nicht weiss/kenne Probleme macht.