Shebang

Jan-Benedict Glaw jbglaw at lug-owl.de
Die Nov 15 10:51:22 CET 2005


On Tue, 2005-11-15 07:56:04 +0000, Lutz Donnerhacke <lutz at iks-jena.de> wrote:
> * Michael Schnupp wrote:
> > Naja. Bei perl-Scripts hatte ich mit mehreren Optionen noch nie ein
> > Problem. Allerdings parst Perl seine Optionen wohl auch nochmal selber.┬╣
> 
> Eben.
> 
> > Wer ist eigentlich f├╝r das Abarbeiten der Shebang und Aufruf
> > des eigentlichen Programms genau zust├Ąndig?
> 
> Die Shell oder das Kernel Modul exec_misc (sp?)

Den shellbang (darunter kenn' ich das Ding...) wertet der Kernel in
./fs/binfmt_script.c aus. Da wird geschaut, ob die Datei mit '#!'
anf├Ąngt; wenn ja, dann werden erstmal Leerzeichen und TABs ignoriert,
danach sollte der auf jeden Fall der Interpreter kommen.

Wenn dem ein Leerzeichen oder TAB folgt, kommen die Argumente. Alle
Argumente scheinen in einem Rutsch kopiert zu werden, sie werden
verschmolzen.

Dann ruft der Kernel mit dem nun gewonnenen Interpreter den ganzen
K├Ąse auf also

<interpreter> <argumente_aus_dem_script> <script> <argumente_von_kommandozeile>

binfmt_misc.c, das macht etwas ├Ąhnliches. Da kannst Du Endungen oder
auch Bytefolgen als Matches angeben, die dann einem Interpreter
zugeordnet werden. Wenn man also z.B. ".ogg" mit "ogg123" verkn├╝pft,
dann kann man Ogg-Vorbis-Dateien direkt ausf├╝hren:

	./foo.ogg

und intern wird daf├╝r der ogg123 gestartet. (Feine Sache:-)

MfG, JBG

-- 
Jan-Benedict Glaw       jbglaw at lug-owl.de    . +49-172-7608481             _ O _
"Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg  _ _ O
 f├╝r einen Freien Staat voll Freier B├╝rger"  | im Internet! |   im Irak!   O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- nńchster Teil --------------
Ein Dateianhang mit Bin├Ąrdaten wurde abgetrennt...
Dateiname   : nicht verf├╝gbar
Dateityp    : application/pgp-signature
Dateigr├Â├če  : 189 bytes
Beschreibung: Digital signature
URL         : http://www.tlug.de/pipermail/tlug_allgemein/attachments/20051115/2a35d086/attachment.pgp