Veo estos dos usos en Ubuntu "command && command" y "command; command",
por ej.apt-get update && apt-get upgrade
¿Qué diferiría si lo uso apt-get update; apt-get upgrade
?
No solicito este uso específico, pero en general, ¿cuál es la diferencia entre estos dos usos?
& (simple sequencing), && (conditional AND) and || (conditional OR)
.||
.Respuestas:
&&
Es un operador lógico.;
Es una secuencia simple.En
cmd1 && cmd2
, cmd2 solo se ejecutará si cmd1 sale con un código de retorno exitoso.Mientras que en
cmd1; cmd2
cmd2 se ejecutará independientemente del estado de salida de cmd1 (suponiendo que no haya configurado su shell para salir en caso de falla en su script o algo así).En una nota relacionada, con el
cmd1 || cmd2
uso del||
operador lógico 'OR', cmd2 solo se ejecutará si cmd1 falla (devuelve un código de salida distinto de cero).Estos operadores lógicos a veces se usan en scripts en lugar de una instrucción if básica. Por ejemplo,
... se puede lograr de manera más concisa con:
fuente
Sintaxis
command2 se ejecuta si, y solo si,
command1
devuelve un estado de salida de cero ( verdadero ). En otras palabras, ejecutecommand1
y, si tiene éxito, ejecutecommand2
.Tanto el comando1 como el comando2 se ejecutarán independientemente. El punto y coma le permite escribir muchos comandos en una línea.
Relacionado :
command2 se ejecuta si, y solo si, command1 devuelve un estado de salida distinto de cero. En otras palabras, corre con
command1
éxito o correcommand2
.Ejemplo
&&
operador:;
operador:||
operador:Enlaces externos
fuente