Bash Linux: &&, || e & – encadeiam ou executam comandos em paralelo

Neste tutorial, veremos como encadear e executar comandos no terminal Linux usando os operadores Bash &&, || e &.
Você aprenderá a:

  • executar uma ordem somente se o anterior for bem-sucedido com &&,
  • executar uma ordem se o anterior falhar com ||,
  • execute vários comandos em paralelo com &.

Ao final deste guia, você saberá como dominar esses operadores para tornar seus scripts e o uso do terminal mais eficientes e poderosos.

Use && no Bash para executar um comando somente se o anterior for bem-sucedido.

O operador && permite executar um comando somente se o comando anterior tiver sido bem-sucedidoIsso é ideal para encadear pedidos que dependem uns dos outros.

Alguns exemplos de uso:

Atualização do sistema:

sudo apt update && sudo apt upgrade -y

Atualizando contêineres usando um arquivo docker-compose.yml:

sudo docker compose down && sudo docker compose pull && sudo docker compose up -d

Use || no Bash para executar um comando somente se o anterior falhar.

O operador || é usado para executar um comando somente se o comando anterior falharÉ útil para lidar com erros diretamente no terminal ou em seus scripts.

Exemplos concretos de uso:

Verifique se a pasta existe; caso contrário, crie-a:

[ -d /tmp/mon_dossier ] || mkdir /tmp/mon_dossier

Instale um pacote se o comando falhar:

command -v curl || sudo apt install curl -y

Alerta em caso de falha no pedido:

cp fichier.txt /destination/ || echo "Erreur : impossible de copier fichier.txt"

Execute comandos em paralelo no terminal Bash com &

O símbolo & permite executar um comando. em segundo planoOu seja, executá-lo em paralelo com outros comandos, sem bloquear o terminal.

3 exemplos práticos de uso de & no Bash Executar comandos em paralelo diariamente:

Inicie vários downloads simultaneamente:

wget https://example.com/fichier1.zip &
wget https://example.com/fichier2.zip &
wget https://example.com/fichier3.zip &
wait

Adicionar wait ao final permite que você espere até que todos os downloads sejam concluídos antes de continuar.

Executar vários scripts de processamento em paralelo:

./script1.sh &
./script2.sh &
./script3.sh

Lançamento de múltiplos pings em paralelo:

ping -c 4 google.com &
ping -c 4 cloudflare.com &
ping -c 4 yahoo.com

Bônus: Encadeando vários comandos Bash com ; sem condições

O ponto e vírgula ; permite a execução vários comandos consecutivos em uma única linha, independentemente do sucesso ou do fracasso do comando anterior. É o operador ideal para encadear comandos rapidamente no terminal.

Exemplos práticos para ; em Bash:

Executar vários comandos consecutivos:

echo "Début du script" ; mkdir /tmp/test ; echo "Dossier créé"

Os comandos são executados em ordem, mesmo que mkdir falhe.

Atualize o sistema e depois faça uma limpeza:

sudo apt update ; sudo apt upgrade -y ; sudo apt autoremove -y

Exibir várias mensagens em uma única linha

echo "Bonjour" ; echo "Bienvenue sur le terminal" ; echo "Amusez-vous !"

Conclusão

Neste tutorial, vimos como Encadeamento e execução de comandos no terminal Bash com diferentes operadores:

  • &&: execute o seguinte comando se o anterior for bem-sucedido.
  • ||: execute o seguinte comando se o anterior falhar.
  • &: executar um comando em paralelo em segundo plano.
  • ;: encadeamento de múltiplos comandos incondicionalmente, sempre em ordem.

Dominar esses operadores permite que você torne seus scripts e o uso do terminal mais eficientes. mais eficiente e flexívelSeja para automatizar tarefas, gerenciar erros ou economizar tempo com execução paralela.

Com esses conceitos, você agora é capaz de Controle com precisão a execução de seus comandos Bash. e para otimizar seus scripts Linux.

Romain Drouche
Romain Drouche
Arquiteto de Sistemas | MCSE: Infraestrutura Essencial
Especialista em infraestruturas de TI com mais de 15 anos de experiência na área. Atualmente, como Gestor de Projetos de Sistemas e Redes e especialista em Segurança de Sistemas de Informação (SSI), utilizo a minha expertise para garantir a fiabilidade e a segurança dos ambientes tecnológicos.

Deixe um comentário