cómo capturar el estado de retorno de cada comando desde un script de Shell con múltiples comandos

cómo capturar el estado de retorno de cada comando desde un script de Shell con múltiples comandos

Soy nuevo en las secuencias de comandos de shell y en escribir una secuencia de comandos con múltiples comandos rm. el script tiene que eliminar archivos en algunos directorios. Quiero capturar el estado de salida de cada comando y devolver el estado de salida si algo falla y continuar con el siguiente comando. ¿Alguien puede ayudarme a corregir mi guión?

    #!/bin/bash
    PATH1=mydir/folder/
    PATH2=mydir/newfolder/

    HOST= hostname | grep -o "[0-9]*" | head -1
   case "$HOST" in
   01)echo "Removing files in server 1.."
    find $PATH1/logs -maxdepth 1 -mtime +30 -type f \( -name "*.log*" -o -name "*.out*" \) -exec rm -f {} \;
    find $PATH1/logs -maxdepth 1 -mtime +30 -type f \( -name "*.log*" -o -name "*.out*" \) -exec rm -f {} \;
    RETVAL=$?
    ;;
   02)echo "Remove logfiles in server 02"
   find $PATH2/logs -maxdepth 1 -mtime +30 -type f \( -name "*.log*" -o -   name "*.out*" \) -exec rm -f {} \;
   find $PATH2/logs -maxdepth 1 -mtime +30 -type f \( -name "*.log*" -o -name "*.out*" \) -exec rm -f {} \;
   RETVAL=$?
   ;;
   *)
   echo "Removal of log files is complete"
   esac

Respuesta1

an echo $?debería devolver el estado del comando anterior. entonces tal vez quieras usar

if [ ! $? -eq 0 ]; then
    echo "command failed"
else
    echo "command success"
fi

información relacionada