Introducción
En este artículo, aprenderemos cómo ejecutar varios comandos al mismo tiempo en Linux. Cada operador tiene sus propias ventajas en la separación de comandos. Este tutorial ayudará a mejorar un poco la forma en que ejecutamos comandos y creamos scripts de shell.
El sistema operativo Linux ofrece una interfaz de línea de comando simple para administrar el sistema. Hay shells como Bash, CSH y Zsh que aceptan comandos del usuario y los enrutan al kernel. El comando se utiliza para realizar algunas funciones en el sistema. También podemos especificar varios shells al mismo tiempo y ejecutarlos uno tras otro.
Hay tres opciones distintas que utilizan los operadores separadores. En la siguiente sección, los veremos en detalle.
Usa punto y coma (;)
Los puntos y comas (;) separan los comandos para garantizar que los comandos subsiguientes se ejecuten independientemente de los estados de salida de los anteriores. Utilice esta opción para asegurarse de que el comando se ejecute después de que se complete el anterior.
Sintaxis:
command1; command2; commandN
Ejemplo:
date; pwd; whoami
Sun Aug 7 03:51:00 UTC 2022
/home/noviello
noviello
Incluso si el segundo comando falla debido a un error de autorización, el tercer comando aún se ejecuta en los siguientes comandos:
date; touch /root/a.txt; whoami
Utilice el operador lógico AND (&&)
Después de la ejecución exitosa del comando anterior, también se ejecutará el siguiente comando. El operador lógico AND (&&) comprueba el estado de salida del comando anterior.
Sin embargo, si el comando anterior terminó con un estado de salida distinto de cero, la ejecución se detendrá aquí. En este caso, no se ejecutarán comandos posteriores.
Sintaxis:
command1 && command2 && commandN
Ejemplo:
mkdir ./backups && cd ./backups
El último comando fallará si el primer comando falla por algún motivo:
mkdir /root/backups && cd /root/backups
mkdir: cannot create directory ‘/root/backups’: Permission denied
Utilice el operador lógico OR (||)
La condición OR lógica (||) comprueba el estado de salida del comando anterior y ejecuta el siguiente comando solo si el comando anterior falló.
Sintaxis:
command1 || command2 || commandN
Puede usar esta construcción en scripts de shell para determinar si un archivo o comando está disponible. Por ejemplo, en un script de copia de seguridad, puede verificar si /usr/bin/mysqldump
existe o no, y si no, puede imprimir un mensaje o finalizar el proceso:
[ -s /usr/bin/mysqldump ] || echo "command not found"
Úselo para buscar un comando o archivo que no existe en su sistema. Esto es útil para scripts bash que crean archivos si no existen. También puede detener la ejecución del script si faltan los archivos necesarios:
[ -s /usr/bin/not_a_cmd ] || echo "command not found"
Conclusión
En este artículo, veremos cómo ejecutar varios comandos al mismo tiempo en Linux. También veremos los diversos operadores que se utilizan para separar los comandos entre sí. Cada operador afecta la forma en que se ejecuta el comando y cada uno tiene sus propias ventajas. Este tutorial proporcionará información útil para cualquier persona interesada en mejorar su ejecución de comandos o sus habilidades de creación de scripts de shell.