Estoy tratando de crear una secuencia de comandos para ejecutar con crontab donde, si hay actualizaciones disponibles, la secuencia de comandos enviará una notificación. El script en sí no me da ningún error, sin embargo, en la declaración if solo funciona la parte "else". ¿Alguna idea?
#!/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
Respuesta aceptada:
Estás comparando la cadena var1
a la cadena update1
. Esos nunca serán los mismos. En su lugar, desea comparar las variables:
if [ "$var1" = "$update1" ]
Por supuesto, todo podría simplificarse a:
sudo apt update | grep -q "package can be upgraded" && notify-send "Updates are available"