Ejecutar dos o más comandos en una línea puede ahorrarle mucho tiempo y ayudarlo a ser más eficiente y productivo en Linux.
Hay tres formas de ejecutar varios comandos en una línea en Linux:
; | Comando 1; Comando 2 | Ejecute el comando 1 primero y luego el comando 2 |
&& | Comando 1 && Comando 2 | Ejecute el comando 2 solo si el comando 1 finaliza correctamente |
|| | Comando 1 || Comando 2 | Ejecute el comando 2 solo si el comando 1 falla |
Déjame mostrarte en detalle cómo puedes encadenar comandos en Linux.
Utilizando ; para ejecutar varios comandos de Linux en una línea
El más simple de todos es el punto y coma (;). Simplemente combine varios comandos que desea ejecutar usando; de la siguiente manera:
cmd1; cmd2; cmd3
Aquí, cmd1 se ejecutará primero. Independientemente de si cmd1 se ejecuta correctamente o con error, cmd2 se ejecutará después. Y cuando finalice el comando cmd2, se ejecutará cmd3.
Tomemos un example puedes practicar fácilmente (si quieres).
mkdir new_dir; cd new_dir; pwd
En el comando anterior, primero crea un nuevo directorio llamado new_dir con el comando mkdir. Luego cambia a este directorio recién creado usando el comando cd. Por último, imprime su ubicación actual con el comando pwd.
Ejecución de múltiples comandos Linux con;
El espacio después del punto y coma (;) es opcional pero facilita la lectura de la cadena de comandos.
Usar && para ejecutar múltiples comandos de Linux
Algunas veces desea asegurarse de que en la cadena de comandos de Linux, el el siguiente comando solo se ejecuta cuando el comando anterior finaliza correctamente. Aquí es donde entra en escena el operador lógico AND &&:
cmd1 && cmd2 && cmd3
Si usa distribuciones basadas en Ubuntu o Debian, debe haber encontrado este comando que utiliza el concepto &&:
sudo apt update && sudo apt upgrade
Aquí el primer comando (sudo apt update) primero actualiza la caché de la base de datos del paquete. Si no hay ningún error, actualizará todos los paquetes que tengan versiones más nuevas disponibles.
Tomemos antes example. Si new_dir ya existe, el comando mkdir devolverá un error. La diferencia en el comportamiento de; y && se pueden ver en la captura de pantalla siguiente:
¿Viste cómo los comandos separados por && se detuvieron cuando el primer comando resultó en un error?
Usando || para ejecutar varios comandos de Linux a la vez
Puede utilizar el operador lógico OR (||) para ejecutar una cadena de comandos, pero el el siguiente comando solo se ejecuta cuando el comando anterior termina con un error. Esto es opuesto a lo que vio con &&.
cmd1 || cmd2 || cmd3
Si cmd1 falla, cmd2 se ejecuta. Si cmd2 se ejecuta correctamente, cmd3 no se ejecutará.
En la captura de pantalla anterior, el comando mkdir new_dir falla porque new_dir ya existe. Dado que este comando falla, el siguiente comando cd new_dir se ejecuta con éxito. Y ahora que este comando se ha ejecutado correctamente, el siguiente comando pwd no se ejecutará.
Consejo adicional: combine && y || operadores
Puede combinar los operadores para ejecutar dos o más comandos de Linux.
Si combina tres comandos con && y ||, se comportará como el operador ternario en C / C ++ (condición? expresión_verdadero; expresión_falso).
cmd1 && cmd2 || cmd3
Para example, usted puede comprobar si el archivo existe en bashe imprima los mensajes en consecuencia.
[ -f file.txt ] && echo "File exists" || echo "File doesn't exist"
Ejecute el comando anterior antes y después de crear el archivo file.txt para ver la diferencia:
Al igual que copiar y pegar en la terminal de Linux, ejecutar varios comandos a la vez también es uno de los muchos consejos de línea de comandos de Linux para ahorrar tiempo. Aunque es elemental, es un concepto esencial que cualquier usuario de terminal Linux debería conocer.
También puede utilizar;, && y || para ejecutar varios comandos en bash guiones también.
Espero que les haya gustado este truco de terminal. Esté atento a más sugerencias y herramientas de comandos de Linux que se publican todos los martes en la serie #TerminalTuesday.