¿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.