Wie zum ausführen von perl-Datei aus dem shell-Skript

Ich habe eine Frage zur Ausführung der perl-Datei in ein shell-script

Ich habe 2 Dateien jetzt "test.sh" und "test.pl", hier ein Beispiel von meinen Skripten

SHELL-Skript

#!/bin/bash
perl FILEPATH/test.pl
......

PERL-Skript

#!/usr/bin/perl
my $a = "hello"
sub saysomething
{
    print $a;
}
.....

Den Weg nenne ich das shell-Skript ist : unter dem Pfad des shell-Skripts, führen Sie "./test.sh"

Alle oben genannten arbeiten, die im Rahmen des Umwelt -
GUN bash, version 4.2.24(1)-release (i686-pc-linux-gnu) + perl (v5.14.2)

Aber wenn ich die scripts auf dem server (was ich nicht ändern konnte die bash /perl version)
GNU bash, version 4.2.10(1)-release (x86_64-pc-linux-gnu) + perl (v5.12.4), bekam ich die followign Nachricht:

FILEPATH/test.pl: Zeile 2: mein: Befehl nicht gefunden

Weiß jemand, wie kann ich dieses problem lösen?

BTW, wenn ich führen Sie das perl-Skript individuell (perl FILEPATH/FILENAME.pl), es funktioniert perfekt.

ist FILEPATH einen absoluten oder relativen Pfad? Sollte absolute
Ist FILEPATH soll eine Umgebungsvariable? Wenn dem so ist, dann sollte es $FILEPATH.
Sie sagte, ich habe 2 Dateien: test.sh & test.pl so was filename.pl ?
Sind Sie auf der sicher, dass die erste Zeile Ihrer Perl-Skript ist #!/usr/bin/perl? Wenn du gehst, um uns zu zeigen, code, es ist am besten zu kopieren-und-einfügen; wenn Sie re-geben Sie es ein, riskieren Sie den Verlust wichtiger Informationen.
Gibt es eine Möglichkeit, dass die perl im perl FILEPATH/test.pl werden kann "verloren". Zum Beispiel, haben Sie vielleicht ${PERL-perl} statt nur perl (oder besser ${PERL:-perl}), oder Sie haben alias perl='' oder etwas ähnlich komisches? Die Fehler, die Sie sehen, zeigt an, dass der shell ist das ausführen der Datei, nicht Perl. Und der einzige Weg, ich kann sehen, dass das passiert ist, es gibt einige versteckte ändern Sie den code.

InformationsquelleAutor user1672190 | 2013-04-15

Schreibe einen Kommentar