Ich wollte wissen, ob für dash, ash und sh geschriebene Skripte zu 100% kompatibel sind.
Gibt es zusätzliche Funktionen zum Bindestrich oder Aschen oder zum Ändern der Syntax?
Nach allem, was ich gehört habe, ist Asche ein direkter Nachkomme von sh.
shell
shell-script
compatibility
dash
ash
user1115057
quelle
quelle
man ash
checkbashisms
testen, ob Ihr Skript POSIX-kompatibel ist.Antworten:
Die kurze Antwort ist nein, sie sind nicht 100% kompatibel.
Aber die meisten Shells sind ziemlich nah am Basic, so dass man nur selten auf Inkonsistenzen stößt. Tatsächlich unterscheiden sich die meisten Shells nicht wesentlich durch die hinzugefügte Syntax, sondern durch einige zusätzliche Funktionen wie die Tab-Vervollständigung und ähnliches.
Ist auch
dash
eine Art Abkömmling vonash
- oder Portierung von BSD auf Linux, um genau zu sein. Und alle von ihnen sollten Nachkommen oder verschiedene Implementierungen von seinsh
. In der Tatsh
ist auf den meisten Systemen nur einen symbolischen Link aufbash
,dash
oder etwas anderes. Entscheidend ist die POSIX-Konformität - und wenn Sie Skripte gemäß den Standards schreiben, treten keine Probleme auf.Der Unterschied zwischen diesen Shells liegt in der Optimierung und Leistung. Sie sind dann weniger
bash
funktionsreich, aber sie sind völlig legitime Muscheln. Bash ist reich an Funktionen für interaktives Arbeiten, benötigt jedoch beispielsweise mehr Speicher.quelle
Es sollte erwähnt werden, dass auf einigen Systemen, insbesondere Debian, / bin / ash nicht verfügbar ist:
quelle