Em um computador com sistema operacional Linux, foi criado ...

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

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”: 

Alternativas

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