Hallo beisammen!
Ich habe ein kleines Problem auf dessen Ursache ich nicht komme, geschweige denn dessen Lösung:
Bei mir kommt bei einer Shebang immer 'Datei oder Verzeichnis nicht gefunden' zurück.
Das Skript:
#!/usr/bin/perl
use strict;
use warnings;
print "Name: ";
my $name=<STDIN>;
print "Vorname: ";
my $vorn=<STDIN>;
chomp $name;
chomp $vorn;
print "Hello, $vorn $name! Have a nice day. ^^/\n";
#exit;
'which perl' ergibt:
/usr/bin/perl
Ausgabe bei ./HW.pl :
./HW.pl: Zeile 1: #!/usr/bin/perl: Datei oder Verzeichnis nicht gefunden
./HW.pl: Zeile 2: use: Kommando nicht gefunden.
./HW.pl: Zeile 3: use: Kommando nicht gefunden.
./HW.pl: Zeile 5: print: Kommando nicht gefunden.
./HW.pl: Zeile 6: Syntaxfehler beim unerwarteten Wort `;'
./HW.pl: Zeile 6: `my $name=<STDIN>;'
(Befehle werden über die Bash statt Perl ausgeführt, daher die restlichen Fehler...
Rufe ich es jedoch via perl ./HW.pl auf, funktioniert das Skript.)
Selbe Fehler bekomme ich bei Bash-Skripten. Auch, wenn das gesamte Skript funktioniert, lautet auch die erste Ausgabe:
./irgendeinskript.sh: Zeile 1: #!/usr/bin/bash: Datei oder Verzeichnis nicht gefunden
Bei vielen Suchen ist oft auch ein Problem mit der Interpretation vom Zeilenumbruch. Da ich das Skript nur mit VIM und Kate unter meinem Linux geschrieben habe, sollte sich da nichts fehlen. Auch Kate zeigt bei der Einstellung für den Zeilenumbruch: UNIX
(Darüber hinaus fehlt die typische Ausgabe von '\r', als Fehler, der bei einem Windows-Umbruch auftreten würde.)
Somit ist auch dies auszuschließen.
Auch wenn ich perl oder /usr/bin/perl aufrufe bin ich in der Perl-Shell.
Wieso wird mein Shebang nicht/falsch genutzt?
Wie kann ich das ändern?