Linux – Inviare notifiche all’utente

È possibile che abbiate bisogno di ricevere una notifica sul vostro desktop quando un lavoro eseguito in background viene terminato. Potreste decidere di inviarvi un’email con il comando mail ma potrebbe venirvi più comodo mostrare un pop-up sul vostro desktop. In questo secondo caso l’utility da utilizzare è notify-send.

La sintassi del comando è semplice:

notify-send "TITOLO" "DESCRIZIONE"

Che a seconda del sistema che state usando verranno formattate in maniera più o meno differente. Un’opzione interessante è l’opzione -t che accetta il numero di millisecondi per cui la notifica deve essere mostrata, altrimenti rimarrà finchè non la chiuderete.

Un problema che potrebbe nascere quando utilizzate questa tecnica è quello di mandare notifiche ad un altro utente. Ad esempio volete effettuare un controllo, un esempio tipico è il controllo degli aggiornamenti, che può effettuare solamente l’utente root ma volete che la notificha venga mostrata all’utente attualmente collegato. Una tecnica che potete utilizzare nei vostri script è la seguente.

Innanzitutto individuate l’utente attualmente collegato:

USER=`who | grep ":0" | awk '{print $1}' | tail -n1`

A questo punto fate tutti i controlli che dovete fare e inviate la notifica con il seguente comando:

su $USERS -c 'notify-send -t TEMPO "TITOLO" "DESCRIZIONE"'

O ancora, se volete sapere quando termina un comando molto lungo, ad esempio la compilazione di un software, potreste usare la seguente sintassi:

COMANDO_LUNGO && notify-send "TERMINATO"

Insomma, questa utility ha infiniti utilizzi e verosimilmente renderà ancora migliore il vostro controllo sul vostro computer.