Nos tutoriais e instruções, muitas vezes vejo comandos combinados. Por exemplo,
sudo apt-get update && sudo apt-get install pyrenamer
Parece haver quatro possíveis conectores: &
, &&
, ||
e ;
. Embora o &
conector seja claro para mim (ele envia um processo para o plano de fundo e deixa o terminal disponível), não está claro qual é a diferença entre &&
e ;
. E eu não sabia ||
até o comentário de Kaya.
As perguntas a seguir lidam com a diferença entre os dois conectores, mas principalmente nos comentários:
Então, aqui estão algumas perguntas relacionadas:
- Qual é a diferença entre
;
e&&
? - Quando você deve usá-los, respectivamente? Seria bom ver alguns casos de uso: se eu quiser executar um comando e depois desligar o computador, qual conector devo escolher?
- Quais são suas vantagens e perigos ? Robie Basak menciona em um comentário a esta resposta que um comando como
cd /somewhere_else; rm -Rf *
pode ter consequências destrutivas se o primeiro elemento da cadeia de comando falhar, por exemplo. - Se relevante, de onde eles vêm?
set -e
interromperá o script com falha, como se todos os comandos estivessem conectados &&
.
||
é o mesmo que&&
exceto que ele só executa o segundo comando se o primeiro sair com um status diferente de zero (sem êxito).