En los tutoriales y procedimientos a menudo veo comandos combinados. Por ejemplo,
sudo apt-get update && sudo apt-get install pyrenamer
Parece que hay cuatro conectores posibles: &, &&, ||y ;. Aunque el & conector es claro para mí (envía un proceso a un segundo plano y deja el terminal disponible), no está claro cuál es la diferencia entre &&y ;. Y no lo supe ||hasta el comentario de Kaya.
Las siguientes preguntas tratan la diferencia entre los dos conectores, pero lo hacen principalmente en los comentarios:
Aquí hay una serie de preguntas relacionadas:
- ¿Cuál es la diferencia entre
;y&&? - ¿Cuándo deberías usarlos respectivamente? Sería bueno ver algunos casos de uso: si quiero ejecutar un comando y después de que apague mi computadora, ¿qué conector debo elegir?
- ¿Cuáles son sus ventajas y peligros ? Robie Basak menciona en un comentario a esta respuesta que un comando como
cd /somewhere_else; rm -Rf *puede tener consecuencias destructivas si el primer elemento en la cadena de comandos falla, por ejemplo. - Si es relevante, ¿de dónde vienen?
set -edetendrá el script en caso de falla como si todos los comandos estuvieran conectados &&.
||es el mismo que&&excepto que solo ejecuta el segundo comando si el primero salió con un estado distinto de cero (sin éxito).