En la señal después de shebang


26

En el script "support / apxs.in" del proyecto Apache httpd , aparece un texto rodeado de @signos #!. Es decir, la primera línea del guión es:

#!@perlbin@ -w

¿Es esto una cosa de Perl o de UNIX? En otras palabras, ¿es posible ejecutar este script usando path/to/script/script_name.in?

Si no, ¿cuál es la razón para comenzar el script con un #!?


8
esos son .inarchivos (es decir, plantillas)
don_crissti

2
Como nota al margen, @está bien en los nombres de archivo, por lo que si tiene un ejecutable llamado @perlbin@que acepta la -wopción y puede interpretar el contenido de ese archivo, , puede ejecutar ese archivo.
Bakuriu

@Bakuriu: "Válido", sí. "Multa"? Dudoso.
Lightness compite con Monica

Respuestas:


47

Esto se ve como un marcador de posición en una plantilla de GNU Automake que se completará con un configurescript. Por lo tanto, no es una cuestión de kernel de Perl o Unix, sino una cuestión de herramientas automáticas GNU.

Probablemente sea de un archivo en una distribución de origen, no de un archivo que se instaló en el sistema a través de make installun administrador de paquetes.

Alternativamente, es de una compilación rota con herramientas automáticas GNU que nunca se definieron perlbincorrectamente.

El hecho de que el archivo tenga un .insufijo confirma que se supone que debe procesarlo configure.

No, no puede ejecutar este archivo tal como está. El marcador de posición se reemplazará con la ruta adecuada al perlejecutable cuando ejecute configure.


Sí, el enlace en la pregunta conduce a un repositorio de código fuente.
Lightness compite con Monica

@LightnessRacesinOrbit Sabes qué, ni siquiera vi que había un enlace allí.
Kusalananda

1
Jeje, pensé que ese podría haber sido el caso. He sugerido una edición que corrige un par de problemas con él, siendo este uno de ellos :)
Luminosidad razas con Mónica

1
Parece un problema con el estilo de Unix.SE: el color del enlace no es muy distinto del color de texto normal.
Barmar

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.