Questão de Sistemas Operacionais — Geral — INSTITUTO AOCP 2026
Sistemas Operacionais›Geral
Código
qa434749
Banca
INSTITUTO AOCP
Órgão
IF CE
Ano
2026
Cargo
Ana ( )
A programação em shell script (bash) é uma habilidade essencial para administradores de sistemas Linux. Referente às estruturas e ao comportamento do bash, assinale a alternativa correta.
AEm bash, a instrução '#!' (shebang) é inserida ao final do script para indicar ao sistema operacional qual interpretador deve ser utilizado para executar o arquivo de script.
BA estrutura de laço 'for' em bash não pode iterar sobre listas de strings, sendo adequada para iteração sobre sequências numéricas geradas pelo comando 'seq'.
CEm bash, os operadores de comparação numérica como -eq, -ne, -lt, -gt, -le e -ge são utilizados dentro de estruturas condicionais para comparar valores inteiros, enquanto os operadores = e == são usados para comparar strings.
DEm bash, aspas simples e duplas são intercambiáveis: ambas expandem variáveis e comandos substituídos com o mesmo comportamento, diferindo em questões de estilo tipográfico sem impacto sobre o comportamento do interpretador.
EEm bash, o operador de redirecionamento >> sobrescreve o arquivo de destino a cada execução do script, enquanto o operador > acrescenta o conteúdo ao final do arquivo existente sem apagar o que já estava gravado.
Revelar gabarito e comentário▾
GabaritoC — Em bash, os operadores de comparação numérica como -eq, -ne, -lt, -gt, -le e -ge são utilizados dentro de estruturas condicionais para comparar valores inteiros, enquanto os operadores = e == são usados para comparar strings.
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”.
Shell Script (Bash): estruturas e comportamento
Gabarito: letra C. Em bash, os operadores de comparação numérica (-eq, -ne, -lt, -gt, -le, -ge) são usados para comparar valores inteiros, enquanto = e == são usados para comparação de strings — exatamente o que a alternativa C afirma. As demais alternativas invertem ou distorcem o comportamento real do interpretador.
O bash (Bourne Again SHell) é o interpretador de comandos padrão na maioria dos sistemas Linux. Ele é um programa de usuário comum que lê comandos do terminal, executa programas e fornece uma linguagem de script com estruturas de controle (condicionais, laços), variáveis, funções e operadores de redirecionamento. Dominar essas estruturas é essencial para administração de sistemas, automação de tarefas e escrita de scripts de manutenção.
A linguagem bash tem particularidades que confundem quem vem de outras linguagens. Por exemplo, a comparação de números e de strings usa operadores diferentes: para números, usam-se operadores de teste como -eq (equal), -ne (not equal), -lt (less than), -gt (greater than), -le (less or equal), -ge (greater or equal); para strings, usam-se = ou == (igualdade) e != (diferença). Essa distinção é fundamental e frequentemente cobrada em provas.
Outro ponto importante é o redirecionamento de saída. O operador > sobrescreve o arquivo de destino, enquanto >> acrescenta (append) ao final do arquivo existente. Muitos candidatos invertem esses operadores, caindo em pegadinhas clássicas.
A linha de shebang (#!) é inserida na primeira linha do script, não no final, e indica qual interpretador deve ser usado para executar o arquivo. Por exemplo, #!/bin/bash no início de um script diz ao sistema para usar o bash como interpretador.
Aspas simples e duplas têm comportamentos diferentes em bash: aspas simples preservam o texto literal (sem expansão de variáveis ou substituição de comandos), enquanto aspas duplas permitem expansão de variáveis e substituição de comandos. Essa diferença é crucial para o comportamento do script.
O laço for em bash pode iterar sobre listas de strings, não apenas sobre sequências numéricas. Por exemplo, for arquivo in *.txt; do echo $arquivo; done itera sobre arquivos .txt. A afirmação de que o for não pode iterar sobre listas de strings é incorreta.
A alternativa C está correta porque descreve precisamente o uso dos operadores de comparação numérica e de strings em bash. Vamos analisar cada alternativa em detalhe.
Alternativa A — ❌ Incorreta
A alternativa afirma que o shebang (#!) é inserido ao final do script. Isso está errado: o shebang deve ser a primeira linha do script. Ele indica ao sistema operacional qual interpretador deve ser usado para executar o arquivo. Por exemplo, #!/bin/bash na primeira linha faz o sistema usar o bash. A banca inverteu a posição do shebang para confundir o candidato.
Alternativa B — ❌ Incorreta
A alternativa afirma que o laço for em bash não pode iterar sobre listas de strings. Isso é falso. O for em bash pode iterar sobre listas de strings, como em for nome in ana bruno carla; do echo $nome; done. A afirmação de que ele é adequado apenas para sequências numéricas geradas por seq é incorreta. O for é versátil e pode iterar sobre qualquer lista de palavras, incluindo strings.
Alternativa C — ✅ Correta ⟵ GABARITO
A alternativa C descreve corretamente os operadores de comparação em bash. Os operadores -eq, -ne, -lt, -gt, -le, -ge são usados para comparar valores inteiros dentro de estruturas condicionais (como if e while). Já os operadores = e == são usados para comparar strings. Por exemplo:
if [ "$a" -eq "$b" ]; then
echo "a é igual a b (numericamente)"
fi
if [ "$a" = "$b" ]; then
echo "a é igual a b (como string)"
fi
Essa distinção é essencial e a alternativa a reflete com precisão.
Alternativa D — ❌ Incorreta
A alternativa afirma que aspas simples e duplas são intercambiáveis, o que é falso. Em bash, aspas simples ('...') preservam o texto literal, sem expansão de variáveis ou substituição de comandos. Aspas duplas ("...") permitem expansão de variáveis e substituição de comandos. Por exemplo:
A banca tenta fazer o candidato acreditar que a diferença é apenas estilística, mas há impacto real no comportamento do interpretador.
Alternativa E — ❌ Incorreta
A alternativa inverte os operadores de redirecionamento. Em bash, >sobrescreve o arquivo de destino, enquanto >>acrescenta ao final do arquivo existente. A alternativa afirma o contrário: que >> sobrescreve e > acrescenta. Isso está errado. Por exemplo:
echo "primeira linha" > arquivo.txt # sobrescreve arquivo.txt
echo "segunda linha" >> arquivo.txt # acrescenta ao final de arquivo.txt
A pegadinha aqui é a inversão clássica dos operadores de redirecionamento.
NÃO CAIA NESSA!
A banca adora inverter conceitos básicos do bash. Nesta questão, ela inverteu a posição do shebang (alternativa A), a capacidade do for (alternativa B), o comportamento das aspas (alternativa D) e os operadores de redirecionamento (alternativa E). A única alternativa que acerta a distinção entre comparação numérica e de strings é a C. Fique atento a essas inversões — com treino, você as reconhece de longe 💪
PEGA ESSA DICA!
Para memorizar os operadores de redirecionamento, lembre-se: > é como uma seta que aponta para o arquivo e o sobrescreve (destrói o conteúdo anterior); >> é como uma seta dupla que adiciona ao final, preservando o que já existe. Para as aspas, lembre-se: aspas simples são "literais" (não expandem nada), aspas duplas são "interpretativas" (expandem variáveis e comandos).