Je voulais savoir si les scripts écrits pour dash, ash et sh sont 100% compatibles?
Y a-t-il des fonctionnalités ajoutées à dash ou ash, ou un changement de syntaxe?
D'après ce que j'ai entendu, le frêne est un descendant direct de sh.
shell
shell-script
compatibility
dash
ash
user1115057
la source
la source
man ash
checkbashisms
pour tester que votre script est compatible POSIX.Réponses:
La réponse courte est non, ils ne sont pas 100% compatibles.
Mais la plupart des shells sont assez proches de la base, vous ne rencontrerez donc que rarement des incohérences. En fait, la plupart des shells ne diffèrent pas beaucoup par la syntaxe ajoutée, mais par certaines fonctionnalités supplémentaires comme la tabulation et similaires.
C'est aussi une
dash
sorte de descendant deash
- ou de port de BSD à Linux, pour être précis. Et tous doivent être des descendants ou des implémentations différentes desh
. En fait,sh
est sur la plupart des systèmes juste un lien symbolique versbash
,dash
ou autre chose. Ce qui importe, c'est la conformité POSIX - et lorsque vous écrivez des scripts conformément aux normes, vous ne rencontrerez aucun problème.La différence entre ces shells réside dans les optimisations et les performances. Ils sont alors moins riches en fonctionnalités
bash
, mais ce sont des coquilles pleinement légitimes. Bash est riche en fonctionnalités pour le travail interactif, mais utilise plus de mémoire, par exemple.la source
Il convient de mentionner que sur certains systèmes, notamment Debian, / bin / ash n'est pas disponible:
la source