ich krieg ein einfaches perlscript nicht zum laufen. rechte stimmen (755), ich kanns mit cat ausgeben, aber die bash findet die datei oder das verzeichnis nicht... woran liegt das? hier die ausgabe: werner@sunny:~ > /~/test.pl bash: /~/test.pl: Datei oder Verzeichnis nicht gefunden werner@sunny:~ > ~/test.pl bash: /home/werner/test.pl: Datei oder Verzeichnis nicht gefunden werner@sunny:~ > ll insgesamt 39 drwx------ 5 werner users 1024 Mar 9 12:26 Desktop drwx------ 2 werner users 1024 Mar 8 23:27 Mail drwx------ 2 werner users 1024 Mar 16 12:48 nsmail drwxr-xr-x 3 werner users 1024 Mar 17 19:09 public_html drwx------ 2 werner users 1024 Mar 2 13:23 sendmail.iga -rwxr-xr-x 1 werner users 40 Mar 17 20:20 test.pl -rwxr-xr-x 1 werner users 32 Mar 17 20:14 test.pl~ -rw------- 1 werner users 30772 Feb 10 12:50 test.ps werner@sunny:~ > test.pl bash: ./test.pl: Datei oder Verzeichnis nicht gefunden werner@sunny:~ > cat test.pl #!/usr/bin/perl print "hallo"; <stdin> werner@sunny:~ > danke im vorraus, werner --- http://sunset.home.pages.de registered Linux User 145180 werner.krauss@hallstatt.net "Why should I read the fucking manual? I know how to f***!" (unbekannter Linux-user) --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
hi werner,
werner@sunny:~ > test.pl bash: ./test.pl: Datei oder Verzeichnis nicht gefunden
ich bin jetzt nicht so der linux-profi, aber so sollte der aufruf schon eher funktionieren: perl test.pl gruss mike -- michael waider internetdienstleistungen richard-wagner-strasse 6 tel: 0941 / 79 47 23 93055 regensburg fax: 0941 / 79 47 24 http://www.waider.de mailto:info@waider.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Fri, Mar 17, 2000 Michael Waider wrote:
werner@sunny:~ > test.pl [...] ich bin jetzt nicht so der linux-profi, aber so sollte der aufruf schon eher funktionieren:
perl test.pl
das geht auch. man kann aber bei vielen interpretieren sprachen, wie z.b. perl, diese sog. "She-Bang-Notation" in die erste zeile schreiben. die sieht so aus: #!/pfad/zum/interpreter wenn dann das script ausfuehrbar ist, kann mans einfach so starten, wie auch ein ausfuehrbares binary. moritz -- Moritz Schulte - hp9001.fh-bielefeld.de/~moritz/, PGP Key available| ---- Zufallssignatur #25: -----------------------------------------| % \(- | bash: (-: command not found | --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Am Fre, 17 Mär 2000 schrieb Werner Krauss:
bash: /home/werner/test.pl: Datei oder Verzeichnis nicht gefunden
Die Fehlermeldung kommt vom Skript, nicht vom Aufruf. Da im Skript perl als einziges aufgerufen wird, kann der Pfad nicht stimmen oder perl ist nicht installiert. Probier mal which perl und schreib den Pfad in das Skript, der ausgegeben wird. Ansonsten bitte Perl installieren. Gruß, Matthias -- SelfLinux http://www.selflinux.de Matthias.Kleine@selflinux.de news: Formatreferenz 0.2 ist raus - http://www.selflinux.de/doku --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Werner Krauss wrote:
ich krieg ein einfaches perlscript nicht zum laufen. rechte stimmen (755), ich kanns mit cat ausgeben, aber die bash findet die datei oder das verzeichnis nicht... woran liegt das?
werner@sunny:~ > cat test.pl #!/usr/bin/perl print "hallo";
Es kann sein, dass die erste Zeile nicht mit <lf>, sondern mit dem bei Micro$oft ueblichen <cr><lf> (Wagenruecklauf und Zeilenvorschub ... Gruss an die gute alte Schreibmaschine! ;-) abgeschlossen ist. Ich wuesste zwar nicht, welcher Editor unter Linux so einen Muell produzieren sollte, aber beim Upload von einem Micro$oft Personal-Computer auf einen Unix-Server kann das ganz leicht passieren, wenn man fuer Scripts den Binaer-Modus verwendet. Es wird dann versucht, das Script an ein Programm "/usr/bin/perl\r" zu uebergeben, was im allgemeinen nicht funktioniert. recode msdos..latin1 test.pl # oder so ... m. --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
hatte das problem auch auf unsererm webserver. per telnet ging das einfache test.pl nicht. -erste zeile #!korrekter/pfad -rechte stimmen -perl test.pl funzt. mein ISP hat mir dann folgendes gemailt: ---snipp-- es liegt kein Perl Fehler vor, sondern ein Uerfahrenheitsfehler. Ein Perl script läuft nicht, wenn nicht print "Content-type: text/html\n\n"; in dem Script vorhanden ist. Das die Datei mit test.pl nicht aufgerufen werden kann, liegt daran, daß der Pfad "./" nicht existiert. Das bedeutet konkret, man kann nicht ausversehen irgendwelche zerstörerische Programme in dem Verzeichnis aufrufen, in dem man sich gerade befindet. Der Aufruf eines Programmes im aktuellen Verzeichnis muß immer über "./dateiname" erfolgen, also hier "./test.pl". --snapp-- ein ls -l bringt aber auch ein "./" zu tage! ich hab das pl-script nicht ueber den apache, sonderm ueber telnet aufgerufen! (s.o.) ind das wirklich die standardeinstellungen? (serversystem freebsd) werner --- http://sunset.home.pages.de registered Linux User 145180 werner.krauss@hallstatt.net "Why should I read the fucking manual? I know how to f***!" (unbekannter Linux-user) --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hi Werner, On Die, 21 Mär 2000, Werner Krauss wrote:
per telnet ging das einfache test.pl nicht. -erste zeile #!korrekter/pfad -rechte stimmen -perl test.pl funzt.
mein ISP hat mir dann folgendes gemailt:
---snipp-- es liegt kein Perl Fehler vor, sondern ein Uerfahrenheitsfehler. Ein Perl script läuft nicht, wenn nicht
print "Content-type: text/html\n\n";
in dem Script vorhanden ist.
Wenn es als CGI laufen soll, dann stimmt das wohl, habe ich auch gerade feststellen müssen ;-) Es kann auch text/plain zurückgeben, dann ist es aber keine Webseite *g*.
Das die Datei mit test.pl nicht aufgerufen werden kann, liegt daran, daß der Pfad "./" nicht existiert.
Der Pfad "." existiert schon, aber er ist nicht in $PATH enthalten, das heißt, in "." wird nicht gesucht, wenn du ein Programm nur mit Namen startest. Du müßtest dann ./programm.pl angeben, wenn du es _direkt_ starten willst. wenn du perl programm.pl schreibst, dann wird perl z.B. in /usr/bin/ gesucht.
Das bedeutet konkret, man kann nicht ausversehen irgendwelche zerstörerische Programme in dem Verzeichnis aufrufen, in dem man sich gerade befindet.
Ist bei der SuSE z.B. für den root-Account standardmäßig auch so. Macht auch Sinn ! Wenn du ein echtes Einzelbenutzersystem hast, dann kannst du ë." natürlich sowohl bei Benutzer als auch bei root in den Pfad tun, aber dann sinigerweise nach hinten. Stell dir vor, du hast in deinem Homeverzeichnis ein Skript, das heißt - dummerweise und zufälligerweise - perl, und du startest als root in deinem Home perl programm.pl. Wenn dann in deinem Skript "rm -Rf /" steht, bist du dein Dateisystem los... naja, mehr oder weniger. Ok ?
ein ls -l bringt aber auch ein "./" zu tage!
Ja, denn das Verzeichnis "." existiert ja auch ! Du befindest dich ja drin ! ;-)
ich hab das pl-script nicht ueber den apache, sonderm ueber telnet aufgerufen! (s.o.)
Über ein Login ? Wie gesagt, siehe oben und "PATH".
sind das wirklich die standardeinstellungen? (serversystem freebsd)
Sollten sie sein ! Gruß, Sebastian -- "No worries." - Rincewind Sebastian Helms - mailto:sebastian@helms.sh (PGP available) SuSE-Linux-Mailinglisten-FAQ: http://www.helms.myokay.net/faq/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (6)
-
a8603365@unet.univie.ac.at
-
bottels@gmx.net
-
Matthias.Kleine@selflinux.de
-
michael@waider.de
-
moritz@hp9001.fh-bielefeld.de
-
sebastian@helms.sh