Beim Schild nach dem Schebang?

26

Im "support / apxs.in" -Skript des Apache-httpd-Projekts folgt ein mit @Zeichen umgebener Text #!. Das heißt, die erste Zeile des Skripts lautet:

#!@perlbin@ -w

Ist das eine Perl- oder eine UNIX-Kernelsache? Mit anderen Worten, ist es möglich, dieses Skript mit path/to/script/script_name.in?

Wenn nicht, was ist der Grund, das Skript mit einem zu starten #!?

Utku
quelle
8
Das sind .inDateien (dh Vorlagen)
don_crissti
2
Als Randnotiz @ist es in Dateinamen in Ordnung. Wenn Sie also eine ausführbare Datei haben, @perlbin@die die -wOption akzeptiert und den Inhalt dieser Datei interpretieren kann, können Sie diese Datei ja ausführen.
Bakuriu
@ Bakuriu: "Gültig", ja. "Fein"? Zweifelhaft.
Leichtigkeit Rennen mit Monica

Antworten:

47

Dies sieht aus wie ein Platzhalter in einer GNU Automake-Vorlage, der von einem configureSkript ausgefüllt wird . Es ist also weder eine Perl- noch eine Unix-Kernelsache, sondern eine GNU-Autotoolsache.

Es handelt sich wahrscheinlich um eine Datei in einer Quelldistribution, nicht um eine Datei, die über make installoder einen Paketmanager auf dem System installiert wurde .

Alternativ ist es ein fehlerhafter Build mit GNU-Autotools, der nie perlbinrichtig definiert wurde .

Dass die Datei ein .inSuffix hat, bestätigt, dass sie von verarbeitet werden soll configure.

Nein, Sie können diese Datei nicht so ausführen, wie sie ist. Der Platzhalter wird perlbeim Ausführen durch den richtigen Pfad zur ausführbaren Datei ersetzt configure.

Kusalananda
quelle
Ja, der Link in der Frage führt zu einem Quellcode-Repository.
Leichtigkeit Rennen mit Monica
@LightnessRacesinOrbit Weißt du was? Ich habe nicht mal gesehen, dass es da einen Link gibt.
Kusalananda
1
Hehe ich dachte das könnte der Fall gewesen sein. Ich habe eine Bearbeitung vorgeschlagen, die einige Probleme behebt, darunter auch :-)
Lightness Races with Monica
1
Scheint ein Problem mit dem Design von Unix.SE zu sein - die Linkfarbe unterscheidet sich nicht sehr von der normalen Textfarbe.
Barmar