Oui et non. Dans un environnement POSIX, les utilitaires doivent se comporter comme décrit par la spécification. En pratique, cela signifie que des versions conformes des utilitaires doivent être présentes dans $PATH
. Cependant, lorsque vous exécutez votre programme sur un système compatible POSIX, vous pouvez l'exécuter dans un environnement non conforme. Dans la pratique, ce qui se produit souvent, c'est que le système d'exploitation a un mode hérité et un mode POSIX, et est en mode hérité par défaut. Pire que de manquer certaines commandes, le mode hérité a tendance à avoir des incompatibilités, telles que des options avec des significations différentes.
Vous pouvez récupérer un bien PATH
avec getconf
. Bien sûr, c'est délicat, car getconf
l'original $PATH
n'est peut-être pas le bon. La commande Application Usage for montre une façon de procéder:
command -p getconf PATH
Pour autant que je comprends la spécification, ce n'est pas nécessaire si vous exécutez votre programme dans un environnement conforme à POSIX; et si vous n'exécutez pas votre programme dans un environnement conforme à POSIX, POSIX ne s'applique pas. Cependant, cette utilisation de l'application peut être considérée comme une recommandation: si cela ne fonctionne pas, vous pouvez vous sentir en droit de vous plaindre à votre fournisseur que quoi qu'il fasse concernant la lettre de la spécification POSIX, il ne respecte pas son esprit.
getconf PATH
dans la section d'utilisation de l'application. Merci!