Não sendo especialista no Linux e no Unix, estou me perguntando qual a diferença entre esses 2 métodos de amarrar 2 comandos na mesma linha? Não vejo diferença na saída neste exemplo simplista
Pete$date ; time
Sun Mar 17 19:37:20 EDT 2013
real 0m0.000s
user 0m0.000s
sys 0m0.000s
Pete$date &&time
Sun Mar 17 19:37:46 EDT 2013
real 0m0.000s
user 0m0.000s
sys 0m0.000s
Isso não causou problemas - só estou curioso ..
fonte
0
significatrue
ou que0
significa verdade - há um erro?0
significatrue
. Eu adicionei um esclarecimento.;
Executa sequencialmente os comandos, independentemente do status de saída anterior:
&&
AND lógico
Execute o próximo comando, mas apenas se o comando anterior tiver sido bem-sucedido (o status de saída foi
0
):||
OR lógico
Execute o próximo comando, mas apenas se o comando anterior falhar (o status de saída não foi
0
):fonte
sh -c "exit 0"
pode ser substituído portrue
nesses exemplos esh -c "exit 1"
porfalse
.