Pular para o conteúdo principal

Questão de Sistemas Operacionais — Geral — VUNESP 2024

Sistemas OperacionaisGeral
Código
vu212407
Banca
VUNESP
Órgão
Pref Piracicaba
Ano
2024
Cargo
Adm ( )

É usual em arquivos shell script (extesão.sh) a primeira linha iniciar com o conjunto de símbolos #! seguido de uma informação. Essa informação indica

  1. Aa conta de usuário responsável pelo script.
  2. Ba localização do interpretador de comandos que será utilizado.
  3. Ca quantidade de threads que irá executar o script.
  4. Do modo de execução do script.
  5. Eos argumentos passados pela linha de comando no momento da execução.
Revelar gabarito e comentário

GabaritoB — a localização do interpretador de comandos que será utilizado.

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 (#!) em scripts shell

Gabarito: letra B. A sequência #! no início de um arquivo shell script é chamada de shebang (ou hashbang) e indica a localização do interpretador de comandos que será utilizado para executar o script. Essa é uma convenção dos sistemas Unix-like, reconhecida pelo kernel ao carregar o arquivo.

O shebang é uma linha especial que aparece na primeira linha de um script executável. Ela começa com os caracteres #! seguidos do caminho absoluto do interpretador, como #!/bin/bash ou #!/usr/bin/python3. Quando o sistema operacional tenta executar o arquivo, ele lê essa linha e invoca o interpretador indicado, passando o script como argumento. Isso permite que um mesmo arquivo seja executado diretamente, sem precisar digitar o nome do interpretador na linha de comando.

A função do shebang é essencial para a portabilidade e automação de scripts. Sem ele, o usuário precisaria especificar manualmente o interpretador a cada execução (ex.: bash script.sh). Com ele, basta tornar o arquivo executável (com chmod +x) e executá-lo diretamente (./script.sh). O kernel, ao identificar os dois primeiros bytes #!, sabe que deve usar o interpretador indicado na sequência.

É importante distinguir o shebang de outros elementos de um script. Ele não define o usuário que executa o script (isso é controlado pelo sistema operacional e pelas permissões), não define a quantidade de threads (isso é responsabilidade do programa em si), não define o modo de execução (isso é feito pelas permissões do arquivo, como chmod) e não contém os argumentos passados na linha de comando (esses são acessados dentro do script via $1, $2, etc.). O shebang é exclusivamente sobre o interpretador.

A pegadinha que a banca explora aqui é a confusão entre o shebang e outros conceitos relacionados a scripts, como permissões de execução, argumentos e até mesmo o usuário dono do arquivo. O candidato que não conhece o termo técnico pode ser induzido a escolher uma alternativa que pareça plausível, mas que não corresponde à função real da linha #!. Guarde bem: #! = interpretador.

1O que é
Primeira linha do script
Inicia com #!
Seguido do caminho do interpretador
2Função
Indica o interpretador
Kernel invoca o interpretador
Permite execução direta (./script.sh)
3O que NÃO é
Usuário responsável
Quantidade de threads
Modo de execução (chmod)
Argumentos da linha de comando ($1, $2)
Shebang (#!)
LEVELsoulevel.com.br
Shebang (#!): O que é (Primeira linha do script, Inicia com #!, Seguido do caminho do interpretador); Função (Indica o interpretador, Kernel invoca o interpretador, Permite execução direta (./script.sh)); O que NÃO é (Usuário responsável, Quantidade de threads, Modo de execução (chmod), Argumentos da linha de comando ($1, $2))

Alternativa A — ❌ Incorreta

A conta de usuário responsável pelo script não é indicada pelo shebang. O proprietário do arquivo é definido pelo sistema de arquivos (atributo de proprietário) e pode ser verificado com comandos como ls -l. O shebang não contém nenhuma informação sobre usuário.

Alternativa B — ✅ Correta ⟵ GABARITO

A linha #! seguida do caminho (ex.: #!/bin/bash) indica exatamente a localização do interpretador de comandos que será utilizado. É a definição clássica de shebang. O kernel usa essa informação para executar o script com o interpretador correto.

Alternativa C — ❌ Incorreta

A quantidade de threads que irá executar o script não tem relação com o shebang. Threads são gerenciadas pelo sistema operacional e pelo próprio programa em execução, não pela primeira linha do arquivo.

Alternativa D — ❌ Incorreta

O modo de execução do script (como permissões de leitura, escrita e execução) é definido pelas permissões do arquivo, configuradas com chmod. O shebang não define modo de execução algum.

Alternativa E — ❌ Incorreta

Os argumentos passados pela linha de comando no momento da execução são acessados dentro do script através de variáveis especiais como $1, $2, $@, etc. O shebang não contém esses argumentos; ele apenas indica o interpretador.

Gabarito: letra B

Link permanente: /questoes/vu212407