Normalmente suelo ;
combinar más de un comando en una línea, pero algunas personas prefieren &&
. ¿Hay alguna diferencia? Por ejemplo, cd ~; cd -
y cd ~ && cd -
parece hacer lo mismo. ¿Qué versión es más portátil, por ejemplo, será compatible con un subconjunto bash como el shell de Android o algo así?
bash
shell
syntax
multiplatform
psihodelia
fuente
fuente
;
uno o el&&
uno? ¿O te refieres a ambos?&&
.Estoy usando
&&
porque hace mucho tiempo en la computadora cercana:pero no ayudó ...;)
cd /tnp/test && rm -rf *
es seguro... ;)fuente
rm -rf /tnp/test
rm /tnp/test/ -rf
para evitar el ingreso mortal de clics erróneosEn
cmd1 && cmd2
,cmd2
solo se ejecuta sicmd1
tiene éxito (devuelve 0).En
cmd1 ; cmd2
,cmd2
se ejecuta en cualquier caso.Ambas construcciones son parte de un shell compatible con POSIX.
fuente
&&
significa ejecutar el siguiente comando si el anterior salió con el estado 0. Para lo contrario, use, por||
ejemplo, para ejecutarse si el comando anterior sale con un estado que no es igual a 0,;
siempre se ejecuta.Muy útil cuando necesita realizar una acción en particular dependiendo de si el comando anterior terminó bien o no.
fuente
Los comandos separados por
;
se ejecutan secuencialmente independientemente de su estado de finalización.Con
&&
, el segundo comando se ejecuta solo si el primero se completa con éxito (devuelve el estado de salida de 0).Esto está cubierto en la página de manual de bash debajo
Lists
. Esperaría que cualquier shell similar a Unix admita ambos operadores, pero no sé específicamente sobre el shell de Android.fuente
&&
permite la ejecución condicional mientras;
siempre se ejecuta el segundo comando.En p
command1 && command2
. Ej. ,command2
Solo se ejecutará cuandocommand1
haya terminado conexit 0
, señalizando que todo salió bien, mientras que encommand1 ; command2
el segundo comando siempre se ejecutará sin importar el resultadocommand1
.fuente
&& es lógico Y en bash. Bash tiene una evaluación de cortocircuito de AND lógico. Este modismo es una forma más simple de expresar lo siguiente:
Mientras que el ; la versión es simplemente:
fuente