O tratamento de erros é uma parte muito importante de qualquer linguagem de programação. Bash não tem opção melhor do que outras linguagens de programação para lidar com o erro do script. Mas é essencial tornar o script Bash sem erros no momento da execução do script do terminal. O recurso de manuseio de erros pode ser implementado para o script Bash de várias maneiras. As diferentes técnicas para lidar com os erros no script bash são mostradas neste tutorial.
Exemplo 1: Manipulação de erros usando uma declaração condicional
Crie um arquivo bash com o seguinte script que mostra o uso da instrução condicional para manuseio de erros. A primeira instrução "se" é usada para verificar o número total de argumentos da linha de comando e imprimir uma mensagem de erro se o valor for menor que 2. Em seguida, os valores de dividendo e divisor são retirados dos argumentos da linha de comando. Se o valor do divisor for igual a 0, um erro será gerado e a mensagem de erro será impressa no erro.arquivo txt. O segundo comando "se" é usado para verificar se o erro.O arquivo txt está vazio ou não. Uma mensagem de erro é impressa se o erro.O arquivo txt não está vazio.
#!/BIN/BASH
#Verifique os valores do argumento
se [$# -LT 2]; então
eco "um ou mais argumentos está faltando."
saída
fi
#Leia o valor de dividendos do primeiro argumento da linha de comando
dividendo = $ 1
#Leia o valor do divisor do segundo argumento da linha de comando
divisor = $ 2
#Divide o dividendo pelo divisor
resultado = 'eco "escala = 2; $ dividendo/$ divisor" | bc 2> erro.TXT'
#Leia o conteúdo do arquivo de erro
content = 'erro de gato.TXT'
se [-n "$ content"]; então
#Print a mensagem de erro se o erro.TXT não está vazio
eco "divisível por zero erro."
outro
#Print O resultado
eco "$ dividendo/$ divisor = $ resultado"
Saída:
A saída a seguir aparece após a execução do script anterior sem nenhum argumento:
A saída a seguir aparece após a execução do script anterior com um valor de argumento:
A saída a seguir aparece após a execução do script anterior com dois valores de argumento válidos:
A saída a seguir aparece após a execução do script anterior com dois valores de argumento em que o segundo argumento é 0. A mensagem de erro está impressa:
Exemplo 2: Manipulação de erros usando o código de status de saída
Crie um arquivo bash com o seguinte script que mostra o uso do tratamento de erros BASH por saída do código de status. Qualquer comando bash é assumido como valor de entrada e esse comando é executado posteriormente. Se o código de status de saída não for igual a zero, uma mensagem de erro será impressa. Caso contrário, uma mensagem de sucesso é impressa.
#!/BIN/BASH
#Tome um nome de comando linux
eco -n "Digite um comando:"
Leia CMD_NAME
#Run o comando
$ cmd_name
#Verifique se o comando é válido ou inválido
se [$? -ne 0]; então
eco "$ cmd_name é um comando inválido."
outro
eco "$ cmd_name é um comando válido."
fi
fi
Saída:
A saída a seguir aparece após a execução do script anterior com o comando válido. Aqui, a "data" é tomada como o comando no valor de entrada que é válido:
A saída a seguir aparece após a execução do script anterior para o comando inválido. Aqui, o "CMD" é tomado como o comando no valor de entrada que é inválido:
Exemplo 3: Pare a execução no primeiro erro
Crie um arquivo bash com o seguinte script que mostra o método para interromper a execução quando o primeiro erro do script aparecer. Dois comandos inválidos são usados no seguinte script. Então, dois erros são gerados. O script interrompe a execução depois de executar o primeiro comando inválido usando o comando "set -e".
#!/BIN/BASH
#Configure a opção de encerrar o script no primeiro erro
set -e
ECHO 'data e hora atuais:'
#Valid Command
data
eco 'Diretório de trabalho atual:'
#Comando inválido
cwd
Echo 'Nome de usuário de login:'
#Valid Command
Quem sou eu
Lista de arquivos e pastas de eco: '
#Comando inválido
lista
Saída:
A saída a seguir aparece após a execução do script anterior. O script interrompe a execução depois de executar o comando inválido que é "CWD":
Exemplo 4: Pare a execução para variável não inicializada
Crie um arquivo bash com o seguinte script que mostra o método para interromper a execução do script para a variável não inicializada. Os valores de nome de usuário e senha são retirados dos valores dos argumentos da linha de comando. Se algum dos valores dessas variáveis não for inicializado, uma mensagem de erro será impressa. Se ambas as variáveis forem inicializadas, o script verifica se o nome de usuário e a senha são válidos ou inválidos.
#!/BIN/BASH
#Set a opção de rescindir o script para uma variável não inicializada
set -u
#Set o primeiro valor de argumento da linha de comando para o nome de usuário
nome de usuário = $ 1
#Set o segundo valor de argumento da linha de comando para a senha
Senha = $ 2
#Verifique o nome de usuário e a senha são válidos ou inválidos
se [[$ userName == 'admin' && $ senha == 'hideseek']]; então
eco "usuário válido."
outro
eco "usuário inválido."
fi
Saída:
A saída a seguir aparece se o script for executado sem usar nenhum valor de argumento da linha de comando. O script interrompe a execução depois de obter a primeira variável não inicializada:
A saída a seguir aparece se o script for executado com um valor de argumento da linha de comando. O script interrompe a execução depois de obter a segunda variável não inicializada:
A saída a seguir aparece se o script for executado com dois valores de argumento da linha de comando - "admin" e "hide". Aqui, o nome de usuário é válido, mas a senha é inválida. Então, a mensagem "Usuário inválido" é impresso:
A saída a seguir aparece se o script for executado com dois valores de argumento da linha de comando - "Admin" e "Hideseek". Aqui, o nome de usuário e a senha são válidos. Então, a mensagem "Usuário válida" está impressa:
Conclusão
As diferentes maneiras de lidar com os erros no script bash são mostradas neste tutorial usando vários exemplos. Esperamos que isso ajude os usuários do Bash a implementar o recurso de manipulação de erros em seu script bash.