Verificar si un comando tuvo éxito en Bash usando el '$?'Variable especial
- 3895
- 898
- Mario Gollum
En Bash, a menudo es necesario verificar si un comando tuvo éxito o fallido. Por ejemplo, es posible que desee ejecutar diferentes comandos según el éxito o el fracaso de un comando, o es posible que desee realizar el manejo de errores en un script. Para verificar si un comando tuvo éxito o fallado en Bash, puede examinar el estado de salida del comando. El estado de salida de un comando es un valor numérico que indica el éxito o el fracaso del comando. Un comando con un estado de salida de 0 indica éxito, y un comando con un estado de salida no cero indica falla.
En este artículo, exploraremos diferentes formas de verificar el estado de salida de un comando en Bash, incluido el uso de ps?' variable especial, utilizando el '&&' y '||' operadores, y usando scripts y funciones. Comprender cómo verificar el estado de salida de un comando en Bash puede ser útil en varios escenarios cuando se trabaja con Bash.
Verificar si un comando tuvo éxito en Bash
En Bash, puede verificar si un comando tuvo éxito o fallado examinando el estado de salida del comando. El estado de salida de un comando es un valor numérico que indica el éxito o el fracaso del comando. Un comando con un estado de salida de 0 indica éxito, y un comando con un estado de salida no cero indica falla.
Para verificar el estado de salida de un comando en Bash, puede usar el $? Variable especial, que almacena el estado de salida del comando más recientemente ejecutado.
Por ejemplo, considere el siguiente comando:
ls -l /etc /
Este comando enumera el contenido del '/etc'
directorio en formato largo. Para verificar si este comando tuvo éxito, puede usar el siguiente código:
123456 | ls -l /etc /if [$? -eq 0]; Entonces Echo "comando sucedió" el más eco "falló el comando" FI |
Este código verifica el estado de salida del comando LS examinando el valor del $? variable especial. Si el valor de ps?' es '0', el comando tuvo éxito y el código se imprime "El comando tuvo éxito". Si el valor de ps?' no es cero, el comando falló y el código se imprime "Error de comando".
Verifique el estado de salida de una función
También puedes usar el ps?' Variable especial para verificar el estado de salida de un comando en un script o función. Por ejemplo, considere el siguiente script:
#/usr/bin/env Bash check_command () comando if [$? -eq 0]; Luego devuelva 0 Else Devuelve 1 fi check_command ls -l / etc / if [$? -eq 0]; Entonces Echo "comando sucedió" el más eco "falló el comando" FI1234567891011121314151617 | #/usr/bin/env Bash check_command () comando if [$? -eq 0]; Luego devuelva 0 Else Devuelve 1 fi check_command ls -l /etc /if [$? -eq 0]; Entonces Echo "comando sucedió" el más eco "falló el comando" FI |
Este script define una función check_command que toma un comando como argumento y verifica el estado de salida del comando. La función regresa '0' Si el comando tuvo éxito y '1' Si el comando falló. El script luego llama a la función check_command con el comando ls y verifica el estado de salida de la función examinando el valor del ps?' variable especial. Si el valor de ps?' es '0', el comando tuvo éxito y el script se imprime "El comando tuvo éxito". Si el valor de ps?' es '1', El comando falló y el script se imprime "Error de comando".
Verifique el estado de salida usando '&&'
Y '||'
en Bash
Además de usar el ps?' Variable especial, también puede usar el '&&' y '||' operadores para verificar el estado de salida de un comando y ejecutar diferentes comandos en función del resultado. Por ejemplo, considere el siguiente código:
ls -l / etc / && echo "comando sucedido" || echo "Comando fallido"1 | ls -l / etc / && echo "comando sucedido" || echo "Comando fallido" |
Este código verifica el estado de salida del 'ls'
'Comando y ejecuta diferentes comandos basados en el resultado. Si el comando LS tuvo éxito, el código se imprime "El comando tuvo éxito". Si el comando LS falló, el código se imprime "Error de comando".
Conclusión
En conclusión, verificar si un comando tuvo éxito o fallado en Bash es una tarea útil que se puede lograr examinando el estado de salida del comando. El estado de salida de un comando es un valor numérico que indica el éxito o el fracaso del comando. Un comando con un estado de salida de '0' Indica el éxito, y un comando con un estado de salida no cero indica falla. Para verificar el estado de salida de un comando en Bash, puede usar el $? Variable especial, que almacena el estado de salida del comando más recientemente ejecutado.
También puedes usar el $? Variable especial para verificar el estado de salida de un comando en un script o función o usar el '&&' y '||' operadores para verificar el estado de salida y ejecutar diferentes comandos en función del resultado. Comprender cómo verificar el estado de salida de un comando en Bash puede ser útil en varios escenarios, como cuando desea ejecutar diferentes comandos en función del éxito o el fracaso de un comando o cuando desea realizar el manejo de errores en un script.
- « Cómo conectar Python con la base de datos MySQL
- Cómo cambiar de recursiva los permisos del archivo en Linux »