De la différence entre bash et sh :
ABck à la question: Si vous avez
/bin/sh
un lien vers bash, alors bash ne se comportera pas de la même manière lorsqu'il est appelé/bin/sh
comme il le fait lorsqu'il est appelé comme/bin/bash
. Lorsqu'il est appelé en tant quesh
, il se limitera principalement à la conformité POSIX plus un ensemble limité d'extensions.
Est-ce que cela signifie que chaque fois que je rencontre un script shell sous Linux avec un shebang to sh:, #!/bin/sh
même si sur cette distribution, bin/sh
c'est un lien symbolique vers un autre shell, comme dash ou bash, il devrait être 100% compatible avec le bourne shell, car se limite-t-elle à un ensemble limité d'extension? Je pourrais donc les exécuter dans FreeBSD? Y a-t-il une exception à cela? Ou devrais-je être sûr de supposer que cela fonctionnera?
Donc, si sur une distribution, bin/sh
est un lien symbolique vers bin/bash
, et un script utilise #!/bin/sh
et le script contient bashism, il ne fonctionnera pas, car bash aimera être en mode sh?