Antworten:
Nein, nicht alle für Bash bestimmten Skripte funktionieren mit Bindestrich. Eine Reihe von 'Bashism' funktioniert nicht im Bindestrich, wie z. B. der C-Stil für Schleifen und die Doppelklammer-Vergleichsoperatoren. Wenn Sie über eine Reihe von Bash-Skripten verfügen, die Sie für Dash verwenden möchten, können Sie Checkbashisms verwenden . Dieses Tool überprüft Ihr Skript auf Nur-Bash-Funktionen, die im Bindestrich wahrscheinlich nicht funktionieren.
#!/bin/shaber nicht funktioniert in /bin/sh( zum Beispiel , weil es wurde geschrieben und läuft nur in bash) sollte in Betracht gezogen wird gebrochen . Der einfachste Weg, solche Skripte zu reparieren, besteht darin, den Shebang durch #!/bin/bash(oder #!/usr/bin/env bash) zu ersetzen .
bashFunktionen abhängt , als solches und nicht als deklarieren sollten sh. Andernfalls funktioniert es einfach nicht auf einem System, mit dem keine shVerbindung besteht bash. Das Praktische ist, Ihre Skripte richtig zu schreiben und zu zeigen, damit sie tatsächlich funktionieren .
Nicht einmal sh-Skripte sind mit dash kompatibel. Pkgsrcs Bootstrap, zum Beispiel.
dash -nhat beim Ausführen von Bootstrap keine Fehler ergeben, aber das ist der naivste Test.
dashdie nicht unterstützt wird. Möglicherweise mehr Dinge, aber die Liste ist sehr klein.
local
#!/bin/bashund dass seine Skripte nicht Posix-konform sind und daher angegeben werden müssen, um mit dem richtigen Interpreter ausgeführt zu werden