O interpretador de comandos bash permite a verificação do st...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a Letra A - if [ $? -ne 0 ]; then exit; fi
.
A questão aborda o conceito de status de saída em scripts bash, um tópico importante para quem está aprendendo a escrever scripts de shell e quer realizar ações condicionais baseadas no sucesso ou falha de comandos anteriores. Em bash, o status de saída de um comando é armazenado na variável especial $?
, que você pode checar para ver se um comando foi executado com sucesso (status 0) ou falhou (qualquer valor diferente de 0).
No trecho de código correto, a expressão [ $? -ne 0 ]
verifica se o status de saída do último comando executado é diferente de zero. Se for, isso geralmente indica que houve um erro, e o script executa o exit
para sair. Isso é uma prática comum para assegurar que o script não continue executando em um estado potencialmente errôneo.
Para entender melhor, aqui está o que cada elemento do comando faz:
if
- inicia a instrução condicional.[
- é um sinônimo para o comandotest
, que avalia a expressão entre colchetes.$?
- representa o status de saída do último comando executado.-ne
- é um operador de comparação numérica que significa "não igual a".0
- é o status de saída que indica sucesso.]
- encerra a expressão para o comandotest
.then exit
- define o que acontece se a condição é verdadeira, neste caso, sair do script.fi
- termina a instrução condicional.
As demais alternativas possuem erros conceituais ou de sintaxe em relação ao que se espera de uma verificação de status de saída:
- Letra B:
$#
refere-se ao número de parâmetros passados para o script e não ao status de saída. - Letra C:
$0
normalmente refere-se ao nome do próprio script ou comando, e não ao seu status de saída. - Letra D:
$*
refere-se a todos os argumentos passados para o script como uma única palavra, e não ao status de saída de um comando.
Portanto, apenas a Letra A utiliza corretamente a variável especial $?
para verificar o status de saída do último comando executado.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
$? retorna o status
0 = êxito
1 = falha
Sintaxe correta: if [ $? -ne 0 ]; then exit; fi
O que o programa quer dizer: Se o o status da sintaxe anterior for diferente (-ne not equal) de 0, então saia.
Gabarito letra A
A = STATUS DO SCRIPT
B = NÚMERO DE PARÂMETROS PASSADOS
C = NOME/CAMINHO DO SCRIPT
D = TODOS OS PARÂMETROS PASSADOS EM UMA ÚNICA LINHA DE COMANDO
GABARITO A
Leia o Fabiano
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo