Eu vejo esses dois usos no Ubuntu "command && command" e "command; command",
por exemploapt-get update && apt-get upgrade
O que seria diferente se eu usasse apt-get update; apt-get upgrade
?
Não estou pedindo esse uso específico, mas em geral qual é a diferença entre esses dois usos?
& (simple sequencing), && (conditional AND) and || (conditional OR)
.||
também.Respostas:
&&
é um operador lógico.;
é um sequenciamento simples.Em
cmd1 && cmd2
, o cmd2 será executado apenas se o cmd1 sair com um código de retorno bem-sucedido.Enquanto que o
cmd1; cmd2
cmd2 será executado independentemente do status de saída do cmd1 (supondo que você não tenha configurado o shell para sair em todas as falhas do script ou algo assim).Em uma nota relacionada, com o
cmd1 || cmd2
uso do||
operador lógico 'OR', o cmd2 será executado apenas se o cmd1 falhar (retorna um código de saída diferente de zero).Esses operadores lógicos às vezes são usados em scripts no lugar de uma instrução if básica. Por exemplo,
... pode ser alcançado de forma mais concisa com:
fonte
Sintaxe
command2 é executado se, e somente se,
command1
retorna um status de saída igual a zero ( verdadeiro ). Em outras palavras, executecommand1
e, se tiver êxito, executecommand2
.Ambos command1 e command2 será executado independentemente. O ponto e vírgula permite que você digite muitos comandos em uma linha.
Relacionado :
command2 é executado se, e somente se, command1 retorna um status de saída diferente de zero. Em outras palavras, execute com
command1
sucesso ou executecommand2
.Exemplo
&&
operador:;
operador:||
operador:Links externos
fonte