Comprueba si hay un error al ejecutar un script con stderr

+1
0
-1

Este script sirve para mostrar con ayuda de notfy-send, si un determinado script se ejecuto correctamente o no, para ello se vale de stderr

Descargar en http://ubuntuone.com/6Ss5xuzxjAZeF7k2W8vkgB

#!/bin/bash
###################################################################################
# This work is licensed under a Creative Commons Reconocimiento-NoComercial 3.0 Unported License.
# http://creativecommons.org/licenses/by-nc/3.0/deed.es_ES
# Creado por Paulo Lira Gutiérrez (enriquelira948@gmail.com)
# Se concede permiso para copiar, distribuir y/o modificar este programa siempre
# y cuando se cite al autor y la fuente de http://ubuntu-scripts.blogspot.mx/
# y según los términos de la GNU General Public License, Versión 3 o cualquiera
# posterior publicada por la Free Software Foundation.
YELLOW="\033[1;33m"
ENDCOLOR="\033[0m"
RED="\033[0;31m"

rm /home/paulo/errores.log
echo -e $YELLOW"Escriba el comando a ejecutar"$ENDCOLOR
read COMANDO
$COMANDO 2> /home/paulo/errores.log
TAMANO=$(du -s /home/paulo/errores.log | grep -o '[0123456789]*')

sleep 2
if [ $TAMANO = 0 ]; then
DISPLAY=:0.0 notify-send -i /home/paulo/.icons/exito.xpm "Comando ejecutado exitosamente"
sleep 2
else
DISPLAY=:0.0 notify-send -i /home/paulo/.icons/error.xpm "Error" "Verifique el archivo de error.log para más detalles"
sleep 2
fi

Comentarios

Imagen de rioport

Hay unos detalles; no todos tienen un usuario que se llame paulo, ni los archivos exito.xpm y error.xpm tienen porque existir.

-- GC --

Imagen de kraken7

Yo pondría tres variables llamadas LOGERRRORES, ICONOEXITO e ICONOERROR que cada usario defina con ruta completa, por ejemplo:

LOGERRRORES="$HOME/errores.log"
ICONOEXITO="$HOME/.icons/exito.xpm"
ICONOERROR="$HOME/.icons/error.xpm"

Y luego las líneas cambiarían a:

rm $LOGERRORES
...
$COMANDO 2> $LOGERRORES
TAMANO=$(du -s  $LOGERRORES | grep -o '[0123456789]*')
...
DISPLAY=:0.0 notify-send -i $ICONOEXITO "Comando ejecutado exitosamente"
...
DISPLAY=:0.0 notify-send -i $ICONOERROR "Error" "Verifique el archivo de error.log para más detalles"

Ya que hay que adaptarle, es más fácil hacerlo al principio con variables claras que luego dan su valor.