O que exatamente interpreta a linha #! / bin / bash?

6

Muitos scripts em idiomas diferentes têm um #!/bin/bash header com um caminho para o interpretador, para que possam ser executados sem chamada explícita ao interpretador a partir da linha de comando.

Mas o que exatamente lê essa linha e executa o interpretador, é shell ou kernel?

    
por vava 09.03.2010 / 02:46

2 respostas

7

Pelo menos no Linux, o kernel tem essa funcionalidade: fs / binfmt_script.c especificamente.

link

Eu imagino, no entanto, que alguns shells podem ignorar isso, e verificar a primeira linha para uma linha de intérprete ao invés de apenas chamar exec e deixar o kernel descobrir isso.

    
por 09.03.2010 / 03:12
5

O kernel lê. Ele usa o #! para detectar que o arquivo é um script e não um binário e executa o comando a seguir.

link explica como funciona muito bem.

    
por 09.03.2010 / 03:16

Tags