#!/bin/bash a=0; for i in $(seq 1 3 10); do a=$(exp...
Qual o resultado da execução do código?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - 11
Para entender o resultado da execução do código presente na questão, precisamos primeiro compreender o que cada linha do script em shell (bash) está fazendo:
O início do script com #!/bin/bash
indica que o interpretador a ser utilizado é o Bash, e isso define que estamos trabalhando com um script de shell no Linux.
A variável a
é inicializada com o valor 0, e o loop for
irá iterar sobre uma sequência de números gerada pelo comando $(seq 1 3 10)
. Este comando gera uma sequência que começa em 1 e vai até 10, incrementando de 3 em 3. Portanto, a sequência gerada é 1, 4, 7 e 10.
Em cada iteração do for
, a variável a
é atualizada para ser o valor da variável i
(o elemento atual da sequência) incrementado de 1. Então, após cada iteração, a
terá os seguintes valores:
- Iteração com
i=1
:a
é atualizado para1 + 1
, resultando em 2 - Iteração com
i=4
:a
é atualizado para4 + 1
, resultando em 5 - Iteração com
i=7
:a
é atualizado para7 + 1
, resultando em 8 - Iteração com
i=10
:a
é atualizado para10 + 1
, resultando em 11
Note que a variável a
é sobrescrita a cada iteração e não acumula os valores. A última atribuição determina seu valor final.
Por fim, o comando echo $a
exibe o valor final da variável a
, que ao término do loop é 11. Portanto, a alternativa E é a correta.
Entender essa questão requer conhecimento sobre o funcionamento dos loops em bash, a sintaxe para atribuição de valores a variáveis e a forma de geração de sequências numéricas, bem como conhecimento sobre a execução de comandos e expressões aritméticas.
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
O comando (seq 1 3 10) nos fala: conte de 1 até 10, andando de 3 em 3, portanto: 1,4,7,10
A variável a, assume os seguintes valores após a execução do comando (expr...): 2, 5, 8, 11, pois é somado 1 a variável $i
Como o último valor de $a é 11, o gabarito é a ALTERNATIVA E.
Obs.: Se o echo $a estivesse dentro do laço do .. done, o código iria nos retornar: 2,5,8,11
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo