SóProvas


ID
3102739
Banca
VUNESP
Órgão
Prefeitura de Valinhos - SP
Ano
2019
Provas
Disciplina
Programação
Assuntos

Sem a shebang, um shell script executado em um servidor Linux

Alternativas
Comentários
  • A questão exige do candidato conhecimentos sobre shell script executados em um ambiente Linux.

    Em síntese, podemos dizer que shell script é um programa de computador que contém uma série de comandos, os quais são executados pelo shell do Unix. O shell do Unix é um interpretador de linha de comando [1]

    Os principais interpretadores de comandos shell são o bash e sh.

    o shebang que o enunciado se refere nada mais é que a sequência de caracteres #! colocado no início de um script, a fim de especificar o interpretador que será o responsável pela execução do script [2].

    Por exemplo [2]:

    #!/bin/sh – executa o arquivo usando o shell Bourne no diretório /bin
    #!/bin/bash –executa o arquivo usando o shell Bash no diretório /bin
    #!/usr/bin/env python3 – executa o arquivo com interpretador python 3 no diretório /usr/bin/env

    Quanto ao resultado da execução de um script sem o shebang em um shell linux, segundo discussão em um fórum oficial do UNIX, o comportamento padrão dos sistemas baseados em Unix seria tentar a execução do script com o shell Bourne (bin/sh), independentemente do shell do usuário [3].

    Logo, a depender da linguagem de script utilizada, ao não se especificar o shebang, o shell Unix pode não ser capaz de executar o código no interpretador correto.

    Por exemplo, se você escrever um script em python  e não especificar o shebang, obviamente não será possível executar esse código com o shell Bourne (bin/sh).

    Gabarito o professor: Letra D.

    REFERÊNCIAS:
      [1] Wikipedia. Shell script. Disponível em: Site da Wikipedia na língua inglesa. Acesso em: 12/8/2020; [2] Wikipedia. Shebang (Unix) Disponível em: Site da Wikipedia na língua inglesa. Acesso em: 12/8/2020. [3] Unix. Scripts without shebang. Disponível em: Fórum de discussões do site oficial Unix. Acesso em: 12/8/2020.
  • A primeira coisa que devemos colocar em um shell script: o #! (vulgarmente chamado de shebang ou hashbang).

    O #! shebang serve para dizer ao kernel qual será o interpretador a ser utilizado para executar os comandos presentes no arquivo.

    Quando executamos um arquivo que começa com #!, o kernel abre o arquivo e pega tudo que está escrito após o shebang até o final da linha. Em seguida ele tenta executar um comando com o conteúdo desta string adicionando como parâmetro o nome do próprio arquivo.

    Portanto se você tem arquivo executável chamado meuscript.sh, contendo um shell-script e começando com #!/bin/bash, quando você executa esse arquivo o kernel vai executar /bin/bash meuscript.sh.