0Pricing
Linux Command Line & Bash Scripting Mastery · Aula

Tratamento de Erros e Status de Saída

Implemente verificações robustas de erros em seus scripts entendendo os status de saída e usando 'set -e' e lógica condicional.

Tratamento de Erros e Status de Saída é uma aula grátis de Linux Command Line & Bash Scripting Mastery no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Linux Command Line & Bash Scripting Mastery, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Linux Command Line & Bash Scripting Mastery inclui 4 aulas no total.

Boas-vindas ao tratamento de erros

Nesta lição, você aprenderá a lidar com erros de forma eficaz para tornar seus scripts Bash mais robustos.

Imagine um script que executa muitas etapas. Se uma etapa falhar, você provavelmente vai querer que o script pare ou, pelo menos, fique sabendo da falha, certo? É aí que entra o tratamento de erros!

O que é um status de saída?

Cada comando executado no shell do Linux retorna um status de saída (às vezes chamado de código de saída ou código de retorno).

  • Um status 0 significa que o comando foi concluído com sucesso.
  • Um status diferente de zero (por exemplo, 1, 2, 127) indica algum tipo de falha ou erro.

É como um semáforo para os seus comandos!

Verifique o status de saída manualmente

Você pode verificar o status de saída do último comando executado usando a variável especial $?.

Vamos experimentar um comando bem-sucedido e outro que falha:

#!/bin/bash

echo "Hello CoddyKit"
echo "Exit status: $?"

ls non_existent_file.txt
echo "Exit status: $?"

Verificação condicional básica de erros

Conhecer o status de saída permite que o script tome decisões. Você pode usar uma instrução if para verificar $? e reagir a erros.

Isso faz com que o script reconheça os problemas e evita que ele continue usando dados inválidos.

#!/bin/bash

ls non_existent_file.txt

if [ $? -ne 0 ]; then
  echo "Error: The 'ls' command failed!"
  exit 1 # Exit script with an error code
fi

echo "This line will not run if 'ls' fails."

O poder de `set -e`

Verificar manualmente $? após cada comando pode ser trabalhoso. É nesse ponto que set -e se torna útil!

Quando você inicia um script com set -e, o Bash encerra imediatamente se algum comando (que não faça parte de um teste condicional) terminar com um status diferente de zero.

É um mecanismo global de segurança para os seus scripts!

`set -e` em ação

Vamos ver como set -e impede que um script continue após um erro. Observe como o comando echo final nunca é alcançado.

#!/bin/bash
set -e

echo "Starting important tasks..."

# This command will fail
cp /non_existent_source /tmp/destination

echo "This line will NOT be printed if 'cp' fails."
echo "All tasks completed successfully."

Quando `set -e` não interrompe

set -e é poderoso, mas segue regras específicas. Ele não fará o script ser encerrado se o comando que falhou:

  • Fizer parte de uma condição if ou while.
  • Fizer parte de uma lista && ou || (exceto o último comando).
  • For precedido por !.

Esses contextos foram criados para testar sucesso ou falha, portanto `set -e` não interfere neles.

Combine `set -e` com `||`

Às vezes, você quer exibir uma mensagem de erro personalizada antes de sair. É possível combinar set -e com o operador || (OR).

command || { echo "Error message"; exit 1; }

Se command falhar, a parte após || será executada, exibirá sua mensagem e, em seguida, sairá com um código de erro específico.

#!/bin/bash
set -e

echo "Attempting to find a file..."

find /non_existent_dir -name "*.txt" || \
  { echo "ERROR: Could not search in /non_existent_dir!"; exit 1; }

echo "Script continued (this won't print if 'find' fails)."

Lide com códigos de saída específicos

Embora 0 signifique sucesso e um valor diferente de zero signifique falha, códigos específicos diferentes de zero podem ter significados distintos.

  • 1: erro geral.
  • 2: uso incorreto de comandos internos do shell.
  • 127: comando não encontrado.

Você pode usar if [ $? -eq 127 ] para verificar tipos específicos de falha e fornecer informações de erro mais adequadas.

Questionário sobre tratamento de erros

Qual das afirmações a seguir sobre os status de saída e o tratamento de erros do Bash é TRUE?

Recapitulação: scripts robustos

Você aprendeu a tornar seus scripts Bash muito mais confiáveis!

  • Cada comando retorna um status de saída (0 para sucesso, diferente de zero para falha).
  • A variável $? fornece o status de saída do último comando.
  • set -e é uma ferramenta poderosa que encerra automaticamente o script na maioria das falhas de comandos.
  • Combine set -e com || para exibir mensagens de erro personalizadas.

Usar essas técnicas ajudará você a escrever scripts mais profissionais e estáveis.

Perguntas Frequentes

A aula “Tratamento de Erros e Status de Saída” é grátis?

Sim — o texto completo de “Tratamento de Erros e Status de Saída” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Linux Command Line & Bash Scripting Mastery, atualize para CoddyKit PRO. O curso de Linux Command Line & Bash Scripting Mastery inclui 4 aulas no total.

O que vou aprender em “Tratamento de Erros e Status de Saída”?

Implemente verificações robustas de erros em seus scripts entendendo os status de saída e usando 'set -e' e lógica condicional. Você pratica Linux Command Line & Bash Scripting Mastery com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Linux Command Line & Bash Scripting Mastery?

Nenhuma experiência prévia é necessária. Linux Command Line & Bash Scripting Mastery no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Tratamento de Erros e Status de Saída”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Linux Command Line & Bash Scripting Mastery?

Sim. Cada aula de Linux Command Line & Bash Scripting Mastery inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Depuração de Scripts Bash (set -x, trap)
  2. Tratamento de Erros e Status de Saída
  3. Boas Práticas de Scripting e Análise Estática
  4. Testar Scripts Bash com Bats
← Voltar para Linux Command Line & Bash Scripting Mastery