O interpretador de comandos bash permite a verificação do st...

Próximas questões
Com base no mesmo assunto
Ano: 2015 Banca: SRH Órgão: UERJ Prova: SRH - 2015 - UERJ - Analista de Sistemas |
Q483290 Programação
O interpretador de comandos bash permite a verificação do status do encerramento do último comando ou função executado no script. Um exemplo de trecho de código fonte que verifica o valor desse status é:
Alternativas

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 comando test, 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 comando test.
  • 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