Alguns códigos de status de erro comum são mencionados abaixo.
Código | Descrição | Comentários |
0 | Indica execução bem -sucedida. | |
1 | É usado para capturar todos os erros gerais. | “Divida por zero”, “Operação não permitida” etc. pode ser as mensagens de erro deste código. |
2 | Indica o abuso de shell embutidos. | “Palavra -chave ausente”, “nenhum arquivo ou diretório” etc. pode ser as mensagens de erro deste código. |
126 | Gera quando qualquer comando não conseguir executar. | Problema de permissão ou chave necessária não disponível pode gerar este código de status |
127 | Normalmente gera o problema do caminho do comando. | "Comando não encontrado" pode ser a mensagem para este código de erro. |
130 | Gera um erro fatal. | "Script terminado por Ctrl+C" pode ser a mensagem deste código. |
255* | Indica o código de saída fora do intervalo. |
Exemplo 1: Leitura de código de saída do terminal
'$?'A variável shell pode ser usada para exibir o código de saída de qualquer comando. 'ls -la' é um comando válido e mostra a lista de arquivos e pastas do diretório de trabalho atual. O valor de '$?'será 0 após a execução do comando' ls -la '. 'ls -xyz' é um comando inválido e '$?'Retornará 2 como código de erro depois de executar o comando.
$ ls -la
$ echo $?
$ ls -xyz
$ echo $?
Exemplo-2: Leitura de código de saída no script bash
Crie um arquivo bash chamado read_file.sh com o seguinte script. Neste script, o nome do arquivo será tomado como entrada do usuário e, número total de linhas, palavras e caracteres desse arquivo será contado usando o comando 'WC'. Se o nome do arquivo for válido, o valor de $ status_code será 0 e se o nome do arquivo for inválido, então o valor de $ status_code é 1.
read_file.sh
#!/BIN/BASH
eco "Entre no nome do arquivo"
Leia o nome do arquivo
WC -LWC $ FILENAME
status_code = $?
eco "A saída do comando 'wc' é: $ status_code"
Exemplo 3: Usando o valor do código de saída para fazer tarefa específica
Crie um arquivo bash chamado read_month.sh Com o seguinte código. Aqui, um valor de data será tomado como entrada. O nome do mês recuperará a partir do valor da data se a data de entrada for válida, caso contrário, a mensagem de erro "data inválida" aparecerá. A condição 'se' for usada no script para verificar o código de status de saída do comando de data. Se a condição for verdadeira, a mensagem de sucesso e o nome do mês da data serão impressos. Se a condição for falsa, a mensagem de falha e o código de status de saída, 1 imprimirá.
read_month.sh
#!/BIN/BASH
eco "Digite uma data no formato: AAAA-MM-DD"
Leia date_value
current_month = $ (data -d "$ date_value" '+%b')
se [$? -Eq 0]
então
eco "Data Comando é executado com sucesso"
eco "O mês atual é $ current_month"
outro
Echo "Date Command não é executado com sucesso"
saída 1
fi
Execute o script.
$ bash read_month.sh
Exemplo-4: usando && e || com código de saída
'&&' O operador lógico é usado para código de saída bem -sucedido e '||' O operador lógico é usado para o código de saída malsucedido. O seguinte comando imprimirá 'Arquivo', se livro.TXT existe arquivo no local atual e imprimir 'o arquivo não existe' se livro.TXT O arquivo não existe no local atual.
$ CAT Livro.txt && eco "Arquivo existe" || eco "o arquivo não existe"
Diferentes usos do código de status de saída são mostrados neste tutorial. Esperança, o leitor receberá um conceito claro sobre o código de status de saída do BASH depois de ler este tutorial.