GNU/Linux >> Tutoriales Linux >  >> Linux

Bash ignorando el error de un comando en particular

La solución:

particular_script || true

Ejemplo:

$ cat /tmp/1.sh
particular_script()
{
    false
}

set -e

echo one
particular_script || true
echo two
particular_script
echo three

$ bash /tmp/1.sh
one
two

three nunca se imprimirá.

Además, quiero agregar eso cuando pipefail está activado, es suficiente para que Shell piense que toda la tubería tiene un código de salida distinto de cero cuando uno de los comandos en la tubería tiene un código de salida distinto de cero (con pipefail apagado debe ser el último).

$ set -o pipefail
$ false | true ; echo $?
1
$ set +o pipefail
$ false | true ; echo $?
0

Solo agrega || true después del comando en el que desea ignorar el error.


No te detengas y también guarda el estado de salida

Por si acaso, si desea que su secuencia de comandos no se detenga si falla un comando en particular y también desea guardar el código de error del comando fallido:

set -e
EXIT_CODE=0
command || EXIT_CODE=$?
echo $EXIT_CODE

Linux
  1. Consejos de Bash para el día a día en la línea de comandos

  2. Dos excelentes usos para el comando cp:accesos directos de Bash

  3. ¿Cuál es el propósito de la palabra clave "do" en Bash For Loops?

  4. Bash Echo ¿La línea de comando se ejecutó en la propia línea de comando (no en un script)?

  5. ¿Cómo deshabilitar un alias en Bash para un solo comando?

Comando Bash printf

Tutorial de comandos echo de Linux para principiantes (5 ejemplos)

Comando Bash Echo explicado con ejemplos en Linux

Cómo usar el comando echo en Bash Scripts en Linux

Solución de problemas del error "Bash:Comando no encontrado" en Linux

Uso del comando Bash printf para imprimir salidas formateadas