Wie kann ich herausfinden, ob ein Skript in bash
oder geschrieben ist sh
?
Die erste Zeile des Skripts ist hier nicht hilfreich, da Bash-Skripte unter Linux folgende Zeile haben:
#!bin/sh
Tatsächlich gibt es viele Distributionen, bei denen /bin/sh
es sich um Bash handelt (möglicherweise /bin/sh
ist dies ein Link zu /bin/bash
diesen Distributionen), und nicht bei Bourne Shell. Wenn ich also versuche, ein Skript auszuführen, das in Bash beispielsweise in FreeBSD geschrieben ist, ist das Ergebnis nicht definiert, da /bin/sh
in FreeBSD Bourne Shell und nicht Bash ist.
Gibt es eine einfache Möglichkeit, festzustellen, ob es sich bei einem Skript um Bash oder Sh handelt?
Gibt es einige Besonderheiten in der Syntax?
bash
shell
shell-script
user1115057
quelle
quelle
Antworten:
Eigentlich bedeuten die Shebang-Zeilen etwas, da einige Distributionen wie Debian nicht
bash
für verwenden,/bin/sh
aberdash
.Die einfachste Lösung, um festzustellen, ob ein Shell-Skript Bash ist, ist die Verwendung
checkbashism
- sieheman checkbashisms
Details.checkbashisms
sollte von verschiedenen Distributionen gepackt werden , für Debian ist es imdevscripts
Paket enthalten - Fedora indevscripts-minimal
(es war früher inrpmdevtools
) und OpenSuSe inrpmlint-mini
quelle