Subject: Re: Batchdateien unter Linux From: uwe@ohse.de (Uwe Ohse) Date: 1997/09/07 Message-ID: <5utk0m$g7u$1@tirka.ohse.de> Newsgroups: maus.os.linux Hallo Michael, >es ist übrigens nicht unbedingt notwendig Hash-Bang (#!) zu benutzen. nicht unbedingt, aber besser ist es. >Damit wird nur sichergestellt, daß ein bestimmter Interpreter benutzt >wird (bash, perl, etc.). Ohne Hash-Bang wird immer /bin/sh zur Abarbeitung >des Scripts verwendet. Der Kernel liefert, wenn er Shellscripte ausführen soll, die kein #! /int/er/preter am Anfang stehen haben, ENOEXEC als Fehlermeldung zurück, und es ist Sache der Shell, dann noch etwas vernünftiges zu machen. tcsh, pdksh und tclsh machen es so daß sie "/bin/sh script" starten. Die bash arbeitet da anders - sie führt das Script (in dem schon geforkten neuen Prozess) selbst aus (und sollte der Sinn der Übung der gewesen sein zu prüfen ob das Script fehlerfrei nicht nur unter Bash, sondern auch unter einer primitiveren Shell laufen kann, dann hat man Pech). rc (die Plan9-Shell) führt Scripte ohne #! gar nicht erst aus. Gruß, Uwe
Andreas Schwab ergänzte:
Und bei csh ist es noch merkwuerdiger: Wenn das Script mit : beginnt, wird es an /bin/sh weitergegeben, ansonsten selber ausgefuehrt.In der Tat: _merkwürdig_.