Pular para o conteúdo

Fundação VUNESP · Exército Brasileiro — Escola de Saúde e Formação Complementar do Exército (ESFC… 2023

Questão 22 — Sistemas Operacionais: Linux — Shell Script e Estruturas Condicionais

Sistemas Operacionais Linux — Shell Script e Estruturas Condicionais

Fundação VUNESP 2023

Exército Brasileiro — Escola de Saúde e Formação Complementar do Exército (ESFCEx) · Oficial do Quadro Complementar do Exército · Caderno 008. Prova Objetiva — Modelo de prova (Versão) A

Gabarito disponível

Considere o seguinte shell script para o sistema operacional Linux:
#!/bin/bash
a=1
b=2
if [ $a > $b ]
then
echo Sim
else
echo Nao
fi
A execução do script acima sem a passagem de nenhum parâmetro produz a seguinte saída no terminal:
Selecione uma alternativa

Resolução comentada

No test do shell, o '>' é redirecionamento de saída, e não comparação; sobra um teste de string não vazia, que é verdadeiro.

Em [ $a > $b ], o shell interpreta '> 2' como redirecionamento para um arquivo chamado '2'. O comando executado fica '[ 1 ]', que testa se a string '1' não é vazia, o que é verdadeiro. Por isso o script imprime 'Sim' e cria o arquivo '2'. A comparação numérica correta seria [ $a -gt $b ].

Análise das alternativas

A) 'Nao' seria o resultado de uma comparação numérica correta. B) Não há erro de sintaxe. D) Apenas um dos ramos do if é executado. E) A saída não é vazia: imprime 'Sim'.

Referência: Manual do Bash: redirecionamento e comando test ([ ]).

Resolução comentada do VaiConcursos.

Ver gabarito

Gabarito: C

Fonte: Gabarito preliminar: Gabarito — página 22 (008 Informática, Versão A)