Wenn ich Perl-Datein in Shell ausführen will, kommt immer wieder die Fehlermeldung "bash:Datei:command not found" und das Programm wird nicht ausgeführt. Auf Suse Linux 7.3 laufen die Programme wiederum einwandfrei. Was muss ich machen damit es wieder funzt?!?
MfG SpOcK
Probleme mit Perl-Dateien (in Shell ausführt)
Re: Probleme mit Perl-Dateien (in Shell ausführt)
hi,
in der ersten zeile der perlscripts muss #!/usr/bin/perl stehen dann klappt es auch.
oder du startest es mit perl "scriptname"
cu
in der ersten zeile der perlscripts muss #!/usr/bin/perl stehen dann klappt es auch.
oder du startest es mit perl "scriptname"
cu
Re: Probleme mit Perl-Dateien (in Shell ausführt)
Wie üblich kann es viele Ursachen geben:
<li>Das Directory, in dem die perl-Skripte stehen, ist nicht im Suchpfad. Dann hilft ein "./mein-skript.pl" weiter, anstelle nur "mein-skript.pl" zu tippen.
<li>Ausführungsrecht ist nicht gesetzt. Kann mit "chmod a+x mein-skript.pl" behoben werden.
<li>perl liegt woanders als /usr/bin/perl. Häufig findet man beispielsweise eine modernere Version unter /usr/local/bin/perl, dann muss dies auch in der ersten Zeile des perl-Skripts eingetragen sein. Siehe mads Tipp oben.
<li>Ganz fiese Sache: perl-Skript wurde auf einer Windows-Maschine zwischengespeichert. Dann wird häufig das Zeilenende konvertiert, und aus "#!/usr/bin/perl" wird "#!/usr/bin/perl^M", wobei "^M" für das unter Linux überflüssige Carriage Return steht. Linux interpretiert es mit als Teil des Dateinamens und findet dann perl nicht, weil er nach perl^M sucht... Behebung: <pre>perl -p -i.bak -e 's/.$//' mein-skript.pl</pre>
Jochen
<li>Das Directory, in dem die perl-Skripte stehen, ist nicht im Suchpfad. Dann hilft ein "./mein-skript.pl" weiter, anstelle nur "mein-skript.pl" zu tippen.
<li>Ausführungsrecht ist nicht gesetzt. Kann mit "chmod a+x mein-skript.pl" behoben werden.
<li>perl liegt woanders als /usr/bin/perl. Häufig findet man beispielsweise eine modernere Version unter /usr/local/bin/perl, dann muss dies auch in der ersten Zeile des perl-Skripts eingetragen sein. Siehe mads Tipp oben.
<li>Ganz fiese Sache: perl-Skript wurde auf einer Windows-Maschine zwischengespeichert. Dann wird häufig das Zeilenende konvertiert, und aus "#!/usr/bin/perl" wird "#!/usr/bin/perl^M", wobei "^M" für das unter Linux überflüssige Carriage Return steht. Linux interpretiert es mit als Teil des Dateinamens und findet dann perl nicht, weil er nach perl^M sucht... Behebung: <pre>perl -p -i.bak -e 's/.$//' mein-skript.pl</pre>
Jochen
Re: Probleme mit Perl-Dateien (in Shell ausführt)
Also wenn ./"Perl_Skript" eintippe klappts. Danke aber was kann ich machen das ich nicht jedes mal ./ eintippen muss.
Das müsste doch irgendwo einzustellen sein oder?
Das müsste doch irgendwo einzustellen sein oder?
Re: Probleme mit Perl-Dateien (in Shell ausführt)
dann ist in deinem Pfad . nicht enthalten -
wenn du das als root ausführen willst nimm . NICHT in den Pfad mit auf....
Schiermi
wenn du das als root ausführen willst nimm . NICHT in den Pfad mit auf....
Schiermi
Re: Probleme mit Perl-Dateien (in Shell ausführt)
oder zumindesten nicht als erstes. Wenn dann schon hinten an..
Aber du solltest auch wissen das dieses mit Absicht geschah.
Stell dir vor dein skript würde "ls" heißen, und neben ls auch eine Backdoor einrichten und sich dann selbst löschen.....
die PATH-Variable wird der Reihe nach abgearbeitet, d.h. wenn ls nicht /usr/bin /bin /usr/sbin usw. gefunden wird, wird als letztes dann ins aktuelle Verz. nachgesehen "."
Gruss Max
Aber du solltest auch wissen das dieses mit Absicht geschah.
Stell dir vor dein skript würde "ls" heißen, und neben ls auch eine Backdoor einrichten und sich dann selbst löschen.....
die PATH-Variable wird der Reihe nach abgearbeitet, d.h. wenn ls nicht /usr/bin /bin /usr/sbin usw. gefunden wird, wird als letztes dann ins aktuelle Verz. nachgesehen "."
Gruss Max