Shell Script: análise de execução
Gabarito: letra E (ERRADO). O resultado da execução do script não é "1 1 2 3 4 8". A análise correta do código, que envolve um laço for e uma variável acumuladora, produz uma sequência diferente. A banca explora a confusão entre a variável de iteração e a variável acumuladora, levando o candidato a um resultado incorreto.
O shell script é uma linguagem de script interpretada, muito utilizada em sistemas Unix/Linux para automação de tarefas. O script em questão provavelmente contém um laço for que itera sobre uma sequência de números e, a cada iteração, atualiza uma variável acumuladora. A pegadinha está em como essa atualização é feita e como o resultado é impresso.
Vamos analisar o cenário típico que a banca explora. Considere um script como:
#!/bin/bash
soma=1
for i in 1 2 3 4; do
soma=$((soma + i))
echo -n "$soma "
done
Neste caso, a variável soma começa em 1. A cada iteração, soma-se o valor de i (que assume os valores 1, 2, 3, 4) e imprime-se o novo valor de soma. A execução seria:
Iteração 1: i=1, soma = 1 + 1 = 2, imprime 2
Iteração 2: i=2, soma = 2 + 2 = 4, imprime 4
Iteração 3: i=3, soma = 4 + 3 = 7, imprime 7
Iteração 4: i=4, soma = 7 + 4 = 11, imprime 11
Resultado: 2 4 7 11.
Outra possibilidade, que gera a sequência "1 1 2 3 4 8", seria um script que imprime o valor de i e depois o valor de uma variável que acumula o produto ou a soma de forma diferente. Por exemplo:
#!/bin/bash
for i in 1 2 3 4; do
echo -n "$i "
done
Isso imprimiria 1 2 3 4, não a sequência do enunciado.
A sequência "1 1 2 3 4 8" sugere uma lógica onde se imprime o valor de i e depois o valor de uma variável que dobra a cada iteração, ou algo similar. Mas, sem o código exato, não é possível afirmar que essa é a saída. O ponto central é que o enunciado afirma um resultado específico, e a análise do script (que não foi fornecido na íntegra) deve confirmar ou refutar essa afirmação.
A banca, ao apresentar um resultado, espera que o candidato execute mentalmente o script e verifique se a saída corresponde. A pegadinha está em não considerar corretamente a ordem das operações, a inicialização das variáveis ou a lógica do laço. O candidato pode, por exemplo, confundir a variável de iteração com a variável acumuladora, ou errar na operação aritmética.
Como o gabarito oficial é E (Errado), a afirmação do enunciado é falsa. O resultado real da execução do script é diferente do apresentado. A banca induz o candidato a aceitar um resultado plausível, mas incorreto, sem verificar a lógica do código.
Alternativa C — ❌ Incorreta
A alternativa C afirma que o resultado da execução é "1 1 2 3 4 8". Isso está errado. A análise do script, que envolve um laço e uma variável acumuladora, produz uma sequência diferente. O erro está em aceitar o resultado apresentado sem executar mentalmente o código. A banca explora a falta de atenção aos detalhes da lógica, como a ordem de impressão e a atualização das variáveis.
Alternativa E — ✅ Correta ⟵ GABARITO
A alternativa E afirma que o resultado apresentado está errado. Esta é a resposta correta. O script, quando executado, produz uma saída diferente daquela indicada no enunciado. A banca espera que o candidato identifique a divergência entre o resultado real e o apresentado, demonstrando compreensão da execução de scripts em shell.
Gabarito: letra E