33.10. Problèmes de portabilité

Ce livre s'occupe principalement des scripts Bash sur un système GNU/Linux. De la même façon, les utilisateurs de sh et ksh y trouveront beaucoup d'idées de grande valeur.

Un grand nombre de shells et de langages de scripts semble converger vers le standard POSIX 1003.2. Appeler Bash avec l'option --posix ou insérer un set -o posix au début d'un script fait que Bash se conforme très étroitement à ce standard. Une autre alternative consiste à utiliser, dans le script, un en-tête sha-bang #!/bin/sh plutôt que #!/bin/bash [105] Notez que /bin/sh est un lien vers /bin/bash pour Linux ainsi que dans certaines autres versions d'UNIX et qu'un script appelé de cette façon désactive les fonctionnalités étendues de Bash.

La plupart des scripts Bash fonctionneront directement avec ksh, et vice-versa, car Chet Ramey a beaucoup travaillé sur le portage des fonctionnalités de ksh aux dernières versions de Bash.

Sur un UNIX commercial, les scripts utilisant les fonctionnalités spécifiques aux commandes standards GNU peuvent ne pas fonctionner. Ceci devient de moins en moins un problème ces dernières années car les outils GNU ont petit à petit remplacé les versions propriétaires même sur les UNIX « solides ». La publication des sources de nombreux outils de Caldera ne fera qu'accélérer la tendance.

Bash dispose de certaines fonctionnalités manquant au shell Bourne. Parmi celles-ci :

Voir la FAQ de Bash pour une liste complète.



[105] Or, better yet, #!/bin/env sh.