← Questões de Programação

Programação · FGV · 2022

Questão comentada de Programação

Dado o programa bash abaixo, #!/bin/bash a=12 b=a+15 echo ${b+20} assinale a opção que mostra a saída correta do programa após sua execução.

Gabarito: C

Em Bash, nem toda linha com cara de conta realmente faz conta. Aqui, a linha b=a+15 nao soma nada: ela apenas atribui ao nome b a string literal "a+15". Em shell script, para fazer operacao aritmetica, voce precisaria de algo como b=$((a+15)). O ponto decisivo esta em echo ${b+20}. Essa forma nao usa o valor de b para imprimir, e sim a expansao de parametro ${variavel+palavra}. Ela significa: se a variavel estiver definida e nao estiver vazia, substitua por "palavra"; se nao estiver, substitua por nada. Como b foi definido na linha anterior, ${b+20} vira 20, independentemente de o conteudo de b ser "a+15". Por isso, a saida correta e 20, que corresponde ao gabarito C. Resumo de prova: em Bash, escrever a=12 e b=a+15 nao faz matematica automaticamente. A banca gosta dessa pegadinha para testar se voce sabe diferenciar atribuicao de string, expansao de variavel e expansao aritmetica.

Continue treinando

Questões relacionadas