Hallo,
ich habe da etwas witziges mit einem Shell-Script : Es beginn mit #!/bin/bash und hat das x-bit. Wenn ich es ( übrigends auch aus der bash-Shell ) mit "dateiname.sh" oder ./dateiname.sh" aufrufe bekomme ich einen Fehler "bash: ./dateiname.sh: Datei oder Verzeichnis nicht gefunden". Rufe ich es über "bash dateiname.sh" auf läuft es problemlos durch. Wie kommt ?
C ya, Stephan
Spaß mit bash
Re: Spaß mit bash
Hmmm - tricky!
<li>Wenn "bash dateiname.sh" problemfrei funktioniert, könnte es an der #!-Zeile liegen, denn das ist ja der einzige Unterschied. Im ersten Fall ist es nur ein Kommentar, im zweiten Fall die Angabe an den Kernel, welcher Interpreter für das Skript gestartet werden muss. Check mal mit 'nem Hexdumper, ob da noch irgendwelche obskuren Zeichen nach "#!/bin/bash" kommen, die für die bash dann den Dateinamen zerreissen.
<li>Kaputtes Dateisystem? Da hatte ich schon die merkwürdigsten Fälle... Einfach mal in Single-User, unmounten und "e2fsck -f" antesten.
<li>Ist es vielleicht Deine interaktive bash, die die Fehlermeldung bringt? Dann kann sie die Datei nicht finden. Wenn ich mal davon ausgehe, dass "dateiname.sh" nur ein Beispiel ist: Sind Umlaute im Namen? Ein "ls -b" zeigt nicht druckbare Zeichen in Dateinamen oktal an, meldet der was?
Sonst kann ich nur noch auf grüne Männchen oder Windows-Infektion tippen. <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
<li>Wenn "bash dateiname.sh" problemfrei funktioniert, könnte es an der #!-Zeile liegen, denn das ist ja der einzige Unterschied. Im ersten Fall ist es nur ein Kommentar, im zweiten Fall die Angabe an den Kernel, welcher Interpreter für das Skript gestartet werden muss. Check mal mit 'nem Hexdumper, ob da noch irgendwelche obskuren Zeichen nach "#!/bin/bash" kommen, die für die bash dann den Dateinamen zerreissen.
<li>Kaputtes Dateisystem? Da hatte ich schon die merkwürdigsten Fälle... Einfach mal in Single-User, unmounten und "e2fsck -f" antesten.
<li>Ist es vielleicht Deine interaktive bash, die die Fehlermeldung bringt? Dann kann sie die Datei nicht finden. Wenn ich mal davon ausgehe, dass "dateiname.sh" nur ein Beispiel ist: Sind Umlaute im Namen? Ein "ls -b" zeigt nicht druckbare Zeichen in Dateinamen oktal an, meldet der was?
Sonst kann ich nur noch auf grüne Männchen oder Windows-Infektion tippen. <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
Re: Spaß mit bash
alles duennsinn!
die Zeile muss latuernich
#!/bin/sh
heissen, denn sh ist fuer shellscripte im she-bang zustaendig
im Zweifel den Pfad mit
which sh
konntrollieren und anpassen
ratte
die Zeile muss latuernich
#!/bin/sh
heissen, denn sh ist fuer shellscripte im she-bang zustaendig
im Zweifel den Pfad mit
which sh
konntrollieren und anpassen
ratte
Re: Spaß mit bash
Hi,
@ratte: das ist völlig falsch. Wie ist es mit #!/bin/ash, #!/bin/csh, #!/usr/bin/perl etc?
@Stephan: existiert /bin/bash?
Gruß,
hjb
@ratte: das ist völlig falsch. Wie ist es mit #!/bin/ash, #!/bin/csh, #!/usr/bin/perl etc?
@Stephan: existiert /bin/bash?
Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?