A primeira linha de script [duplicado]

1

o que significa #! / bin / bash na primeira linha? É apenas um comentário e ignorado pelo shell como todos os outros comentários no programa

OR

Somente esta linha é interpretada pelo intérprete e todas as outras linhas iniciadas pelo # são ignoradas, exceto #! / bin / bash.

    
por Shivam Chauhan 06.07.2015 / 08:42

4 respostas

3

Dê uma olhada aqui Wikipedia / Shebang .

    
por 06.07.2015 / 08:45
2

A primeira linha informa ao computador qual interpretador deve ser usado durante a execução do arquivo

Digamos que você escreva um script usando python e, enquanto estiver executando esse script, você usará o interpretador python e como o computador saberá qual interpretador usar, ele saberá através dessa linha, que também é chamada de Shebang , para python

#!/usr/bin/env python
print "Hello world"

digamos que você escreva um script no bash e use o shebang para o script bash que diz ao computador para usar o intérprete bash enquanto executa este código

 #!/usr/bin/bash 
  echo "Hello world" 
    
por 06.07.2015 / 08:55
0

Essa primeira linha começando com #! é (no Linux) interpretada pelo kernel Linux dentro da implementação de execve(2) chamada de sistema (que é invocada, depois de fork , pelo seu shell para a maioria dos comandos - aqueles que não são funções e não integrações de shell).

Você pode mencionar o caminho absoluto de outros executáveis (como /usr/bin/env , consulte env ( 1) ). Como um exemplo bobo, tente criar um script contendo a única linha #!/bin/cat /proc/self/maps e, em seguida, torne o script legível e executável (com chmod a+rx ) e, em seguida, execute-o.

A execve specification do POSIX não menciona nenhuma shebang processamento específico, mas todos os sistemas semelhantes ao Unix em que trabalhei (Linux, SunOS, HPUX, AIX, ...) processaram especificamente em execve

O intérprete bash está ignorando essa linha, como qualquer outra linha que comece com # , como um comentário.

Veja também binfmt_misc (específico do Linux).

    
por 06.07.2015 / 09:02
-2

Força o script a ser executado usando o shell bash, em vez do shell atual que está sendo usado.

    
por 06.07.2015 / 08:54