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 #!
?
.in
Dateien (dh Vorlagen)@
ist es in Dateinamen in Ordnung. Wenn Sie also eine ausführbare Datei haben,@perlbin@
die die-w
Option akzeptiert und den Inhalt dieser Datei interpretieren kann, können Sie diese Datei ja ausführen.Antworten:
Dies sieht aus wie ein Platzhalter in einer GNU Automake-Vorlage, der von einem
configure
Skript 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 install
oder einen Paketmanager auf dem System installiert wurde .Alternativ ist es ein fehlerhafter Build mit GNU-Autotools, der nie
perlbin
richtig definiert wurde .Dass die Datei ein
.in
Suffix hat, bestätigt, dass sie von verarbeitet werden sollconfigure
.Nein, Sie können diese Datei nicht so ausführen, wie sie ist. Der Platzhalter wird
perl
beim Ausführen durch den richtigen Pfad zur ausführbaren Datei ersetztconfigure
.quelle