Good to Know Database

Shell-Programmierung: Die Shebang für Bash-Skripte


Sicherlich haben Sie in einem Bash-Skript schonmal die folgende Zeile am Anfang des Skripts gesehen. Aber wozu ist diese gut?

#!/bin/bash

Diese Zeile ist die sogenannte Shebang und befindet sich in der Regel direkt am Anfang eines Bash-Skriptes oder direkt nach dem einleitenden Kommentar. Die Shebang (#!) sorgt dafür, dass der Befehl dahinter beim Aufruf des Skriptes ausgeführt wird. Das Skript und gegebenenfalls die angegebenen Parameter werden dabei dem Befehl übergeben. Das Ganze wird genutzt um in einem Skript festzulegen mit welchem Interpreter das Skript ausgeführt werden soll. In diesem Beispiel wird das Skript also mit der Linux-Shell /bin/bash ausgeführt.

In vielen Shell-Skripten findet man auch die folgende Shebang.

#!/bin/sh

Diese sollte man jedoch mit Bedacht verwenden weil in der Regel die Linux-Shell /bin/sh nur ein Link auf eine andere verfügbare Linux-Shell ist. Unter Ubuntu verweist /bin/sh zum Beispiel auf die Linux-Shell /bin/dash.

georg@ubuntu1204:~$ ls -la /bin/sh
lrwxrwxrwx 1 root root 4 Mär 29  2012 /bin/sh -> dash

Bei CentOS ist /bin/sh ein Link auf die Bash.

[root@centos6 ~]# ls -la /bin/sh
lrwxrwxrwx 1 root root 4  9. Mär 16:03 /bin/sh -> bash

Da die eigentliche Linux-Shell hinter /bin/sh je nach der verwendeten Distribution unterschiedlich sein kann, sollten Sie vermeiden diese in Ihren Skripten zu verwenden.


Dieser Eintrag wurde am 25.05.2013 erstellt und zuletzt am 20.10.2013 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_7_2222.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer