Al escribir un script o ejecutar un comando, tiene sentido saber si tuvo éxito. En Linux, cuando se ejecuta un comando, obtenemos un código de salida que confirma si el comando ejecutado fue exitoso. Al ejecutar un comando que se basa en la salida del otro comando, debe obtener el código de salida del primer comando para determinar si el otro comando se ejecutará. Esta guía se centra en dos formas de verificar si un comando tuvo éxito en Bash.
Dos formas de verificar si un comando tuvo éxito en Bash
Cuando ejecuta un comando en Bash, debe devolver un código de salida o estado. Puede usar la instrucción "IF" para evaluar el valor devuelto de un comando determinado o usar la variable especial ($?) para verificar el código de salida o el estado del comando ejecutado. Vamos a entrar en detalles.
1. Usando la declaración BASH IF
Con la declaración "si", puede evaluar el valor de retorno de un comando que se ejecuta dentro de una expresión. La declaración "si" obtiene el estado de salida. Dependiendo de su expresión, ejecuta el comando consecuente en la declaración condicional if-else.
Por ejemplo, podemos crear un script que elimine cualquier archivo de texto en el directorio actual y devuelva un mensaje de éxito si el comando se ejecuta o un mensaje de falla si el comando no tiene éxito.
Hacer que el script sea ejecutable usando el comando chmod. Entonces, ejecutarlo.
Tenga en cuenta que nuestro comando no tiene éxito, mostrando así el mensaje fallido. Sin embargo, si el comando tiene éxito, obtenemos una salida diferente.
Puede usar el mismo concepto al ejecutar cualquier comando en Bash de modo que si un comando dado no tiene éxito, muestra una salida dada para confirmar que el siguiente comando no se ejecutará ya que el primer comando ya falló.
2. Usando la variable especial ($?)
La variable especial ($?) Devuelve el código de salida del último comando ejecutado. Cuando devuelve el código de salida como cero, implica que el comando tuvo éxito con éxito. Sin embargo, cualquier otro número significa que su comando no tuvo éxito.
Uso de la variable especial para verificar si un comando tuvo éxito requiere que use un operador de comparación binaria (EQ) para ver si el código de salida es cero. Si no, ejecuta la parte más de la declaración condicional if-else.
Ejecute el comando en su script. Luego, agregue una declaración condicional if-else para verificar si su comando fue ejecutado. Editemos nuestro ejemplo anterior para usar la variable especial de la siguiente manera:
Si ejecutamos el script, devuelve una salida que confirma que no tiene éxito ya que no hay archivos de texto para eliminar. Por lo tanto, ejecuta el comando en la parte más en lugar del "si".
Supongamos que tenemos archivos de texto en el directorio actual. Podríamos obtener una salida diferente. Aquí, recibimos el mensaje de éxito, lo que significa que el código de salida coincidió con la sección "IF" a medida que tuvo éxito.
En el caso anterior, el comando tuvo éxito. Podemos verificarlo en función del mensaje de salida que muestra, confirmando que el código de salida para el comando es cero.
Conclusión
Hay dos formas comunes de verificar si su comando tuvo éxito en Bash. Puede usar la instrucción if-else condicional para mostrar una salida, dependiendo de si un comando tuvo éxito. Alternativamente, puede usar la variable especial ($?) para verificar el código de salida o el estado del comando ejecutado utilizando la instrucción if-else.