Hasta ahora hemos hablado de ejecutar comandos uno por uno desde la terminal. Sin embargo, Bash nos permite ejecutar una serie de comandos desde una sola línea, e incluso hacerlo bajo ciertas condiciones. En este post aprenderemos cómo valernos de la ejecución encadenada de comandos según lo requiera el caso. ¡Comencemos!
Ejecución encadenada de comandos
Comencemos con el caso más simple. Si escribimos
comando1; comando2; comando3
y presionamos Enter, Bash ejecutará comando1
, luego comando2
y finalmente comando3
sin detenerse en caso de algún fallo.
Por otro lado,
comando1 && comando2
hará que comando2
solamente corra en caso de que comando1
haya finalizado correctamente, mientras que
comando1 || comando2
hará que comando2
se ejecute únicamente en caso de que comando1
falle.
Consideremos los siguientes ejemplos para ilustrar, cuyo resultado podemos ver a continuación en la Fig. 1:
cd; echo "Soy un comando intermedio"; ls ls -l /usuario && echo "Este mensaje aparecerá únicamente si /usuario existe" ls -l /usuario || echo "Este mensaje aparecerá en caso de que /usuario no exista"
Como podemos apreciar, en el primer ejemplo todos los comandos de la lista se ejecutaron uno a continuación del otro, mientras que en los dos siguientes eso depende del estado de salida del comando con el que se inicia la lista. Recordemos que el estado de salida o exit status de un comando será 0 si finalizó correctamente o un número diferente caso contrario, lo cual podemos verificar a través de echo $?
en cualquier momento.
Un ejemplo clásico del uso de && se encuentra en el proceso de instalar un paquete solamente si la actualización de los repositorios resultó exitosa. En otras palabras,
apt-get update && apt-get install tmux
solamente intentará instalar el paquete tmux si la sincronización con los repositorios se completa correctamente en Debian o similares.
Las aplicaciones de la ejecución encadenada de comandos son tan variadas como nos podamos imaginar. Entre ellas podemos mencionar la creación de un alias como ll='clear; ls -l'
para limpiar la pantalla antes de mostrar un listado detallado de un directorio.
Te invitamos a profundizar sobre este tema en nuestro curso de preparación para la certificación LPIC1, sobre el que te damos más detalles en nuestro sitio web.
¡Hasta el próximo post!