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:
$0normalmente 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