Pular para o conteúdo principal

Questão de Sistemas Operacionais — Linux — VUNESP 2023

Sistemas OperacionaisLinux
Código
vu197295
Banca
VUNESP
Órgão
UNICAMP
Ano
2023
Cargo
PTIC ( )
Scripts shell costumam ser iniciados por um conjunto de caracteres denominado shebang, que tem como função definir qual interpretador será utilizado pelo script. É correto afirmar que o conjunto de caracteres shebang é:
  1. A&&
  2. B$$
  3. C#!
  4. D&$
  5. E/*
Revelar gabarito e comentário

GabaritoC — #!

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

Shebang: o cabeçalho que define o interpretador

Gabarito: letra C. O conjunto de caracteres shebang é #! — ele aparece na primeira linha de um script e indica ao sistema operacional qual interpretador deve executar o arquivo (por exemplo, #!/bin/bash). É um conceito fundamental de shell script, cobrado em provas de Linux e programação.

O shebang (também chamado de hashbang) é uma sequência de dois caracteres: o # (cerquilha/hash) seguido do ! (ponto de exclamação/bang). Quando o kernel do Linux tenta executar um arquivo de texto, ele lê os dois primeiros bytes. Se encontrar #!, ele interpreta o restante da primeira linha como o caminho do interpretador a ser usado. Por exemplo, em um script com #!/bin/bash, o kernel invoca o Bash para processar o arquivo. Sem o shebang, o sistema tentaria executar o arquivo como um binário, o que falharia para scripts de texto.

A origem do nome é uma combinação de hash (outro nome para #) e bang (gíria para !). É um recurso essencial para scripts em sistemas Unix-like, pois permite que o mesmo arquivo seja executado por diferentes interpretadores (Bash, Python, Perl, etc.) sem que o usuário precise especificar o interpretador manualmente.

A banca explora a confusão entre o shebang e outros símbolos especiais do shell. Cada alternativa incorreta apresenta um par de caracteres que tem significado próprio no contexto de shell script, mas que não é o shebang. Vamos analisar cada uma.

Shebang (#!)
  • 1Função
    • Define o interpretador
    • Primeira linha do script
  • 2Exemplo
    • #!/bin/bash
    • #!/usr/bin/python3
  • 3Origem do nome
    • Hash (#)
    • Bang (!)
  • 4Símbolos que confundem
    • && → operador E (AND)
    • $$ → PID do processo
    • & → execução em 2º plano
    • $ → expansão de variável
    • * → curinga (wildcard)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O par && é o operador lógico E (AND) no shell. Ele é usado para encadear comandos, executando o segundo apenas se o primeiro for bem-sucedido. Por exemplo, mkdir dir && cd dir cria o diretório e, se a criação for bem-sucedida, entra nele. Não tem relação com a definição do interpretador.

Alternativa B — ❌ Incorreta

O par $$ representa o PID (Process IDentifier) do processo atual do shell. É uma variável especial que expande para o número do processo em execução. Por exemplo, echo $$ imprime o PID do shell atual. Não é usado para definir interpretador.

Alternativa C — ✅ Correta ⟵ GABARITO

O par #! é exatamente o shebang. Ele é colocado na primeira linha do script, seguido do caminho do interpretador (ex.: #!/usr/bin/python3). É a forma padrão de declarar qual interpretador será utilizado.

Alternativa D — ❌ Incorreta

O par &$ não é um operador padrão do shell. O & sozinho é usado para executar um comando em segundo plano (ex.: sleep 10 &), e $ é usado para expandir variáveis (ex.: $HOME). A combinação &$ não tem significado definido no contexto de shell script.

Alternativa E — ❌ Incorreta

O par /* é um padrão de curinga (wildcard) em globbing. O * corresponde a qualquer sequência de caracteres, e a barra / é o separador de diretórios. Por exemplo, ls /etc/*.conf lista todos os arquivos .conf em /etc. Não tem relação com a definição do interpretador.

NÃO CAIA NESSA!

A banca troca o shebang (#!) por outros símbolos especiais do shell (&&, $$, &$, /*) para confundir o candidato. O && é o operador E, $$ é o PID, & é execução em segundo plano, $ é expansão de variável, e * é curinga. Memorize o par #! como o único que define o interpretador.

PEGA ESSA DICA!

Para fixar, lembre-se da pronúncia: hash-bang#!. Sempre que vir um script começando com #!, saiba que é o shebang. Na prova, se a alternativa trouxer um par de caracteres que não seja #!, descarte-a imediatamente.

Gabarito: letra C

Link permanente: /questoes/vu197295