Si y no. En un entorno POSIX, las utilidades deben comportarse como se describe en la especificación. En la práctica, esto significa que las versiones conformes de las utilidades deben estar presentes en $PATH
. Sin embargo, al ejecutar su programa en un sistema compatible con POSIX, es posible que lo esté ejecutando en un entorno no conforme. En la práctica, lo que sucede a menudo es que el sistema operativo tiene un modo heredado y un modo POSIX, y está en el modo heredado de manera predeterminada. Peor que perder algunos comandos, el modo heredado tiende a tener incompatibilidades en ellos, como opciones con diferentes significados.
Puedes recuperar un bien PATH
con getconf
. Por supuesto, es complicado, ya que getconf
en el original $PATH
puede no ser el correcto. El uso de la aplicación para el comando muestra una forma de hacerlo:
command -p getconf PATH
Hasta donde yo entiendo la especificación, esto no es necesario si está ejecutando su programa en un entorno compatible con POSIX; y si no está ejecutando su programa en un entorno compatible con POSIX, POSIX no se aplica. Sin embargo, el uso de esta aplicación se puede tomar como una recomendación: si esto no funciona, puede sentirse autorizado para quejarse con su proveedor de que, independientemente de lo que estén haciendo con respecto a la letra de la especificación POSIX, no están cumpliendo con su espíritu.
getconf PATH
en la sección de uso de la aplicación. ¡Gracias!