Questão de Sistemas Operacionais — Geral — VUNESP 2024
Sistemas Operacionais›Geral
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
Aa conta de usuário responsável pelo script.
Ba localização do interpretador de comandos que será utilizado.
Ca quantidade de threads que irá executar o script.
Do modo de execução do script.
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.
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.