En un shebang, ¿se permite un espacio o más entre #!
y el intérprete?
Por ejemplo, #! /bin/bash
. Parece funcionar, pero algunos dijeron que es incorrecto.
Respuesta aceptada:
Sí, esto está permitido.
El artículo de Wikipedia sobre shebang incluye un correo electrónico de 1980 de Dennis Ritchie, cuando estaba introduciendo el soporte del kernel para shebang (como parte de un paquete más amplio llamado directivas de intérprete ) en la versión 8 de Unix (énfasis mío):
Se ha cambiado el sistema para que si un archivo que se está ejecutando
comience con los caracteres mágicos #!
, el resto de la línea se entiende
como el nombre de un intérprete para el archivo ejecutado. […]
Para aprovechar esta maravillosa oportunidad,
ponga
#! /bin/sh
en el margen izquierdo de la primera línea de sus scripts de shell. ¡Espacio en blanco después de !
están bien.
Entonces, los espacios posteriores al shebang han existido durante bastante tiempo y, de hecho, el ejemplo de Dennis Ritchie los está utilizando.
Tenga en cuenta que las primeras versiones de Unix tenían un límite de 16 caracteres en esta línea de interpretación, por lo que no podía tener una cantidad arbitraria de espacios en blanco allí. Esta restricción ya no se aplica en los núcleos modernos.