Em um computador com sistema operacional Linux, foi criado ...
Em um computador com sistema operacional Linux, foi criado o seguinte código bash:
#!/bin/bash
calculo(){
calc=$(($1*($2-$3)))
return $calc }
read -p "Entre com numero: " int1
read -p "Entre com numero: " int2
read -p "Entre com numero: " int3
add $int1 $int2 $int3
echo "Resultado: " $?
Entrando com valores 2, 4 e 3 (nessa ordem), ao executar esse arquivo bash, vai aparecer em “Resultado”:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B - 2
Tema central da questão
A questão aborda funções em Bash, passagem de argumentos e o uso do comando return versus echo em scripts de shell. É essencial para concursos saber diferenciar como funções retornam valores e como capturar esses valores no shell.
Resumo teórico
No Bash, o return retorna um código de status (de 0 a 255), não um valor calculado. Para obter valores de funções, normalmente se usa echo e captura com $(). O comando $? armazena o código de retorno do último comando executado (Manual Bash GNU).
Justificativa da alternativa correta
A função calculo() recebe três números, calcula $1 * ($2 - $3) e usa return $calc. Após a coleta dos números (2, 4, 3), há o erro de chamada à função: foi chamada add ao invés de calculo. Contudo, supondo a intenção da banca, consideramos a execução da função calculo.
O cálculo seria: 2 * (4 - 3) = 2. A linha return $calc faz a função retornar 2 como código de status. O comando echo "Resultado: " $? mostra esse valor, pois $? guarda o último código de retorno. Portanto, a saída será:
Resultado: 2
Por que as alternativas incorretas (A, C, D) estão erradas?
- A - 1: Representaria 2 * (4 - 3) = 2 * 1 = 2. O valor 1 não é o resultado do cálculo nem do código de retorno.
- C - 3: Não corresponde a nenhum valor calculado ou retornado pela função.
- D - 4: Também não está relacionado ao cálculo ou ao código de retorno.
Estratégias para interpretação
Fique atento ao uso de $? e à diferença entre return e echo no Bash. Questões assim costumam cobrar detalhes de sintaxe e comportamento esperados em scripts. Ao ler o enunciado, destaque palavras-chave e verifique se há pegadinhas, como funções nomeadas de forma diferente ou chamadas incorretas.
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