Gregs Wiki enthält einen Beitrag zum Anpassen von Bash-Skripten für Dash , der auf viele "Bashismen" hinweist - zusätzliche Funktionen, die nicht dem Standard entsprechen, aber Teil von Bash sind. Das Vermeiden dieser Bashismen kann dazu beitragen, Ihr Skript für verschiedene Umgebungen benutzerfreundlicher zu gestalten. Dies beantwortet insbesondere einige Ihrer Fragen. Zum Beispiel gibt es Operatoren, die sich unterscheiden (wie ==
), aber es gibt einen Standard-Posix-Satz, der in allen Umgebungen funktionieren sollte.
Weitere Informationen finden Sie im Posix-Standard , dem alle Schalen entsprechen sollten. Insbesondere das Volumen zu "Shell & Utilities".
Was ich schwieriger finde als die Shell-Unterschiede, sind die Befehlsunterschiede. Viele Linux-Systeme haben GNU find
, aber wenn Sie ein portables Skript schreiben, verlassen Sie sich nicht auf Ihr eigenes man find
, da es viele Systeme mit BSD gibt find
, die über andere Funktionen verfügen. Wenn Sie Skripte für Busybox schreiben, werden Sie feststellen, dass es verschiedene Versionen mit völlig unterschiedlichen nc
s gibt. Das sind die Dinge, die mich immer beschäftigen, wenn ich ein Skript in verschiedenen Umgebungen bereitstelle.
Für zusätzliche Informationen zu guten Shell-Scripting-Praktiken gibt es auch eine gute Ressource in David Pashleys Blog: Schreiben robuster Bash-Shell-Skripte
Lesen Sie auch die Antworten und Kommentare von Gilles auf dieser Website. Er hat viele Tipps, wie Sie sicherstellen können, dass Sie tragbaren Code verwenden.