Hi,
habe kürzlich mein erstes Perl-Proggi geschrieben (ein sagenhaftes "Hallo Welt"-Programm ;-), um mal zu testen, ob mein Perl (unter SUSE 7.2) richtig installiert ist.
Wenn das Programm mit
> perl HalloWelt.pl
aufgerufen wird, läuft es anstandslos.
Versuche ich es jedoch über den Dateinamen zu starten mit
> HalloWelt.pl
bekomme ich die Fehlermeldung
> bash: HalloWelt.pl: command not found
Mein Programm sieht folgendermaßen aus:
#!/usr/bin/perl -w
print ("Hallo Welt!\\\\n")
Die Fakten kurz und bündig:
- Beim Ausführen von HalloWelt.pl befinde ich mich im richtigen Verzeichnis
- Das Execute-Bit von HalloWelt.pl ist gesetzt
- Die Perl-Programmdatei befindet sich tatsächlich in usr/bin
- Das die bash von SUSE 7.2 mit #! nicht zurecht kommt, kann ich mir nicht vorstellen
- Interessant: Starte ich HalloWelt.pl über den Midnight Commander wird das Programm anstandlos ausgeführt
Also wo liegt das Problem?
HtM
NZC
Linux 14.981 Themen, 106.344 Beiträge
Hihi,
lustige Privatunterhaltung. Hoffentlich langweilen wir euch nicht!
> Befindest du dich in dem Verzeichnis, in dem das Script ist, kannst du das Script nur aufrufen, wenn du entweder ./ davor setzt oder den Punkt '.' in $PATH mit aufnimmst.
Stimmt doch nicht.
$ which hostname
/bin/hostname
$ cd /bin
$ hostname
horse
Mein $PATH liste ich jetzt hier nicht, du wirst mir aber glauben, dass "." nicht darin vorkommt.
Anders ausgedrückt: Die Auswertung der Umgebungsvariable $PATH hängt nicht davon ab, in welchem Verzeichnis ich mich befinde. Ich bin selber durch die Diskussion nochmal unsicher geworden und habe es daher mit tcsh und bash ausprobiert.
Bundeskanzler