Como executar um comando depois que o anterior terminou no Linux

24 de novembro de 2021

rodar-comando-depois-do-anterior

Este artigo explica como executar um comando após o comando anterior ter terminado de rodar. Usando isso, você pode executar não apenas 2 comandos, mas qualquer número de comandos, depois que o anterior tiver terminado. Isso vai funcionar com Sh, Bash, Zsh e outras conchas.

Você pode executar um comando após o anterior ter terminado, dependendo do status de saída do comando anterior (se ele falhou ou não) ou independentemente disso. Portanto, há 3 situações possíveis:

  • execute um comando se o comando anterior saiu com sucesso,
  • execute um comando se o comando anterior falhar (se tiver um status de saída diferente de 0), ou
  • execute um comando independentemente do status de saída do comando anterior (não importa se ele falhou ou não)

Vamos dar uma olhada em cada um desses casos abaixo.

Para executar vários comandos sucessivamente (aguardando que o anterior termine) somente se o comando anterior sair com sucesso, use o operador && entre os comandos. Por exemplo (você pode ter qualquer número de comandos):

Comandos para usar no terminal

comando1 && comando2

Se você não se importa com o status de saída do comando anterior, e você só quer executar um comando depois que o anterior tiver terminado, use o ; separador. Exemplo (você pode ter qualquer número de comandos):

Comandos para usar no terminal

comando1; comando2; comando3

E se você quiser executar um comando depois que o anterior terminou de rodar, mas apenas se este comando anterior falhou (se ele retornar um status de saída que não seja 0). Nesse caso, use o separador ||. Por exemplo (mais uma vez, você pode ter qualquer número de comandos):

Comandos para usar no terminal

comando1 || comando2

Você também pode misturar esses operadores. Nesse caso, você pode agrupar os comandos usando ( e ). Por exemplo:

Comandos para usar no terminal

comando1 || (comando2; comando3)

Neste exemplo:

  • rode o comando1 e espere que ele termine
  • se comando1 falhar, prossiga para os próximos comandos (||):
    • rode o comando2 e espere que ele termine
    • independentemente do status de saída do comando1, execute o comando3 (;)

Outro exemplo:

Comandos para usar no terminal

(comando1 && comando2); (comando3 && comando4)

Neste exemplo:

  • rode comando1 e espere que ele termine
  • se comando1 for bem sucedido, execute o comando2 e aguarde que ele termine (&&)
  • independentemente se comando2 foi bem sucedido ou não, ou se ele mesmo rodou ou não, rode comando3 e espere que ele termine (;)
  • se comando3 for bem sucedido, execute comando4 (&&)

Esse post foi traduzido do site LinuxUprising.com pela rtland.team.

Linux Uprising Blog

Confira a versão original desse post em inglês:

How To Run A Command After The Previous One Has Finished On Linux
Propaganda
Propaganda