A segno dopo Shebang?


26

Nello script "support / apxs.in" del progetto httpd di Apache, segue un testo circondato da @segni #!. Cioè, la prima riga dello script è:

#!@perlbin@ -w

È una cosa Perl o un kernel UNIX? In altre parole, è possibile eseguire questo script usando path/to/script/script_name.in?

In caso contrario, qual è il motivo per avviare lo script con un #!?


8
quelli sono .infile (es. template)
don_crissti

2
Come nota a margine, @va bene nei nomi dei file, quindi se hai un eseguibile chiamato @perlbin@che accetta l' -wopzione ed è in grado di interpretare il contenuto di quel file, allora , puoi eseguire quel file.
Bakuriu,

@Bakuriu: "Valido", sì. "Bene"? Dubbia.
Lightness Races con Monica

Risposte:


47

Sembra un segnaposto in un modello GNU Automake che verrà compilato da uno configurescript. Quindi non è una cosa del kernel Perl o Unix, ma una cosa GNU autotools.

Probabilmente proviene da un file in una distribuzione di origine, non da un file che è stato installato sul sistema tramite make installun gestore pacchetti.

In alternativa, proviene da una build interrotta con autotools GNU che non è mai stata definita perlbincorrettamente.

Che il file abbia un .insuffisso conferma che dovrebbe essere elaborato da configure.

No, non puoi eseguire questo file così com'è. Il segnaposto verrà sostituito con il percorso corretto per l' perleseguibile durante l'esecuzione configure.


Sì, il collegamento nella domanda conduce a un repository di codice sorgente.
Lightness Races con Monica

@LightnessRacesinOrbit Sai cosa, non ho nemmeno visto che c'era un link lì.
Kusalananda

1
Hehe ho pensato che potrebbe essere stato il caso. Ho suggerito una modifica che risolve un paio di problemi, questo è uno di questi :)
Lightness Races con Monica

1
Sembra un problema con lo stile di Unix.SE - il colore del collegamento non è molto distinto dal normale colore del testo.
Barmar

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.