Questão de Sistemas Operacionais — Terminal Services — FGV 2024
Sistemas Operacionais›Terminal Services
Código
fg075006
Banca
FGV
Órgão
AL-PR
Ano
2024
Nível
Superior
Cargo
Analista Legislativo - Analista de Redes
Seja o seguinte arquivo shell script gerado para uma máquina LinuxSe o valor de X for 10 , o de Y for 9 e o de Z for 85, então o resultado que irá aparecer será
A0.
B19.
C85.
D90.
E100.
Revelar gabarito e comentário▾
GabaritoA — 0.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Resolução
Gabarito: letra A — a conta chega a 0 — alternativa A.
A ideia por trás
Um shell script é um arquivo de texto com comandos que o interpretador de comandos do Linux (bash) executa em sequência. Ele permite automatizar tarefas usando variáveis, estruturas de controle e expressões aritméticas. A expansão aritmética $(( ... )) é um recurso do bash que calcula uma expressão numérica e devolve o resultado como texto.
Dentro de $(( ... )) podemos usar operadores aritméticos (+, -, *, /, %) e de comparação (>, <, ==, etc.). O operador ternário ? : é uma forma compacta de escrever um if-else: 'condição ? valor_se_verdadeiro : valor_se_falso'. Se a condição for verdadeira, o resultado é o primeiro valor; se for falsa, o segundo. A comparação > retorna 1 (verdadeiro) se o lado esquerdo for maior que o direito, e 0 (falso) caso contrário.
Esta questão cobra exatamente a avaliação de uma expressão aritmética com operador ternário: precisamos substituir os valores das variáveis, calcular a soma, comparar com Z e escolher o ramo correto do ternário.
O que a questão dá
X = 10
Y = 9
Z = 85
script: resultado = $(( (X + Y) > Z ? 0 : 1 ))
O que queremos: o valor que o script imprime na tela
Passo 1 — Calcular a soma de X e Y
A expressão dentro do $(( ... )) começa com (X + Y), então precisamos saber quanto vale essa soma antes de comparar com Z.
Por que esta fórmula: É uma adição simples: X + Y.
De onde vem cada valor: = enunciado: 10 · = enunciado: 9
NÃO CAIA NESSA!
Nenhum erro comum neste passo, mas é importante não confundir a ordem dos operandos.
Passo 2 — Comparar a soma com Z
O operador ternário precisa de uma condição para decidir qual valor retornar. A condição é (X + Y) > Z, então comparamos a soma obtida no passo 1 com Z.
Por que esta fórmula: O operador > é uma comparação: retorna 1 se o lado esquerdo for maior que o direito, e 0 caso contrário.
De onde vem cada valor: = passo 1: 19 · = enunciado: 85
NÃO CAIA NESSA!
Achar que 19 > 85 é verdadeiro, ou inverter o sinal da comparação.
Passo 3 — Escolher o valor do ternário
Com a condição avaliada, o operador ternário seleciona um dos dois valores: se a condição for verdadeira, retorna o primeiro; se falsa, o segundo. Como a condição é falsa, o resultado é o valor após os dois pontos.
Por que esta fórmula: A sintaxe do ternário é 'condição ? valor1 : valor2'. Aqui, valor1 = 0 e valor2 = 1.
De onde vem cada valor: = passo 2: 0 (falso) · = constante: 0 · = constante: 1
NÃO CAIA NESSA!
Confundir a ordem: pensar que condição falsa retorna o primeiro valor. A regra é: verdadeiro → primeiro, falso → segundo.