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 -einterromperá 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).