Ich versuche, ein Skript zu erstellen, das mit crontab ausgeführt werden soll, wobei das Skript eine Benachrichtigung sendet, wenn Updates verfügbar sind. Das Skript selbst gibt mir keine Fehler, aber in der if-Anweisung funktioniert nur der „else“-Teil. Irgendwelche Ideen?
#!/bin/bash
sudo apt update > ~/Desktop/UpdateInfo
update1=$(grep "package can be upgraded" ~/Desktop/UpdateInfo | cut -d' ' -f2,3,4,5)
var1="package can be upgraded."
if [ var1 = update1 ]
then
notify-send "Updates are available"
else
notify-send "test"
fi
Akzeptierte Antwort:
Sie vergleichen die Zeichenfolge var1
in die Zeichenfolge update1
. Das wird nie mehr dasselbe sein. Sie möchten stattdessen die Variablen vergleichen:
if [ "$var1" = "$update1" ]
Natürlich könnte das Ganze vereinfacht werden zu:
sudo apt update | grep -q "package can be upgraded" && notify-send "Updates are available"