O espaço é permitido entre #! e / bin / bash em shebang?

37

Em um shebang, é um espaço ou mais permitido entre #! e o intérprete?

Por exemplo, #! /bin/bash . Parece trabalho, mas alguns disseram que está incorreto.

    
por Tim 15.04.2016 / 18:25

2 respostas

41

Sim, isso é permitido.

O artigo da Wikipédia sobre o shebang inclui um e-mail de 1980 de Dennis Ritchie, quando ele estava apresentando Suporte ao kernel para o shebang (como parte de um pacote mais amplo chamado diretivas de intérprete ) no Unix da versão 8 (ênfase minha):

The system has been changed so that if a file being executed begins with the magic characters #!, the rest of the line is understood to be the name of an interpreter for the executed file. […]

To take advantage of this wonderful opportunity, put

#! /bin/sh

at the left margin of the first line of your shell scripts. Blanks after ! are OK.

Então espaços após o shebang existem há algum tempo e, de fato, o exemplo de Dennis Ritchie é usá-los.

Note que as primeiras versões do Unix tinham um limite de 16 caracteres nessa linha de intérprete, então você não poderia ter uma quantidade arbitrária de espaços em branco. Esta restrição não se aplica mais nos kernels modernos.

    
por 16.04.2016 / 08:44
34

Sim, os espaços em branco são permitidos após o #! . Houve até um (equivocado) pensamento de que alguns sistemas podem exigir isso, mas sempre foi apenas opcional.

Para ler mais, tente aqui

    
por 15.04.2016 / 18:38

Tags