¿Cómo combinar múltiples comandos en la terminal?


25

Tengo los siguientes comandos.

cd import
zcat urls1.sql.gz | mysql -u root -p urls
cd /var/www/project1/
nano 1.php

A partir de ahora lo estoy ejecutando uno por uno.

¿Hay alguna manera de combinar esos comandos en una línea?


3
¿Hiciste alguna investigación para esta pregunta?
— don.joey

Esa no fue mi pregunta. Es solo que medio minuto de google te hubiera dado la respuesta. Por lo tanto, me preguntaba qué había encontrado, si acaso.
— don.joey

¿Qué te hace pensar que rechacé tu pregunta? Descuidaré tu ira. Como nota al margen, la pregunta "cuál es mejor: usar ;o &&ejecutar múltiples comandos en una línea" es mucho mejor, tiene más investigación y probablemente habría atraído muchos votos positivos.
— don.joey

Hay una variante más genérica de esta pregunta disponible en askubuntu.com/questions/334994/… . Se ocupa exactamente de la pregunta que menciono en el comentario anterior.
— don.joey

No te preocupes Giri. La esencia de la pregunta es interesante. Me tomé el esfuerzo de hacer una variante genérica.
— don.joey

Respuestas:


33

Sí, separe con un punto y coma así:

dir; ls -l

La mayoría de los lanugauges / shells usan el punto y coma para indicar el final de un comando y comenzar de nuevo mientras evalúan de izquierda a derecha.

O, como recomienda @RobieBasak, use && en lugar de; para evitar accidentes de codificación.

dir && ls -l

23
Es una buena idea usar en &&lugar de ;. Esto garantiza que los comandos posteriores solo se ejecuten si los comandos anteriores no han fallado. Esto evita algunas consecuencias incómodas. Por ejemplo: cd /somewhere_else; rm -Rf *podría hacer algo desastroso si /somewhere_elseno existe o si lo deletrea mal; cd /somewhere_else && rm -Rf *te protege de esto.
— Robie Basak

2
La solución '&&' es tan buena que debería ser la primera recomendación en esta respuesta. Edite su respuesta y promueva la mejor respuesta al primer lugar.
— Kerem Baydogan el

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.