Ejecución encadenada de comandos con Bash

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"
Ejemplos de ejecución encadenada de comandos con Bash
Figura 1 – Ejemplos de ejecución encadenada de comandos con Bash

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!