Qual resultado vamos encontrar na variável $LOG ao final da ...

Próximas questões
Com base no mesmo assunto
Q3701768 Programação

Avalie o shell script abaixo e responda à questão.


#!/bin/bash

i=1

LOG=logfile

while [ $i -lt 3 ]

do

               echo $i >> $LOG

               i=$(($i + 1))

done 

Qual resultado vamos encontrar na variável $LOG ao final da execução?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Tema central da questão: Manipulação de variáveis e arquivos em shell script, envolvendo laço while e redirecionamento de saída.

O ponto-chave desta questão é entender o que ocorre com a variável $LOG durante todo o script. Em shell script, uma variável recebe um valor textual, sendo acessada por $variavel. Observe:

LOG=logfile

Logo, $LOG contém apenas a string "logfile" – e esse valor não muda em nenhum momento durante o script.

O loop while [ $i -lt 3 ] executa enquanto i for menor que 3. Em cada iteração:

  • echo $i >> $LOG — adiciona o valor de i ao final do arquivo chamado "logfile".
  • i é incrementado (i=1 vira i=2, depois i=3 e aí o laço termina).

Pegadinha: A questão pede o valor da variável $LOG e não o conteúdo do arquivo!

Justificativa da alternativa correta (D):
Ao final, $LOG permanece “logfile”. As linhas echo $i >> $LOG só escrevem no arquivo cujo nome está na variável, mas não alteram a variável em si. Isso está de acordo com a teoria fundamental das variáveis em Shell e seus operadores de redirecionamento (referência: Shell Script Profissional, Julio Neves).

Análise das alternativas incorretas:

  • A) 2: Último valor escrito no arquivo. Não é o valor de $LOG.
  • B) 3: Valor de i após o loop, confunde variável de controle com a variável pedida.
  • C) 1: Valor inicial de i, não tem ligação.
  • E) 123: Pode sugerir a concatenação dos valores escritos, mas o conteúdo real do arquivo seria:
    1
    2
    Não tem relação com $LOG.

Portanto, a alternativa D) logfile é a única correta.

Estratégia de prova: Reforce sempre a diferença entre “conteúdo de variável” e “conteúdo de arquivo”. Fique atento ao que a questão pede – uma confusão comum é responder sobre o efeito do script, não sobre a definição da variável.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo