Questão de Sistemas Operacionais — Linux — VUNESP 2023
- Código
- vu197295
- Banca
- VUNESP
- Órgão
- UNICAMP
- Ano
- 2023
- Cargo
- PTIC ( )
- A&&
- B$$
- C#!
- D&$
- E/*
GabaritoC — #!
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.
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.
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.
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.
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.
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.
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.
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