POSIX requiere $PWD
que se fijará de la siguiente manera:
PWD
Esta variable representa una ruta absoluta del directorio de trabajo actual. No debe contener ningún componente que sea punto o punto-punto. El valor lo establece la utilidad cd y la utilidad sh durante la inicialización.
Así que usted puede confiar en que está establecido – pero no nota "... una ruta absoluta ...", no la ruta absoluta.
bash
(al menos las versiones más recientes) recordarán los enlaces simbólicos que siguió al configurar $PWD
(y el pwd
incorporado). command pwd
(es decir, el comando externo) no lo hará. Entonces obtendrás diferentes resultados allí, que podrían o no ser importantes para ti. Use pwd -P
si quiere una ruta sin enlaces simbólicos.
tenga en cuenta que la documentación pwd
afirma:
si un conjunto de aplicaciones o desarma el valor de las personas con discapacidad, el comportamiento de las personas con discapacidad no se especifica.
Por lo tanto, no hacen eso :)
En pocas palabras, no hay un ganador aquí. La variable de entorno estará allí en los shells POSIX, al igual que el comando externo y posiblemente también un built-in. Elija el que mejor se adapte a sus necesidades, lo importante es si le importan los enlaces simbólicos o no.
[POSIX] (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/pwd.html) también dice: "Si una aplicación establece o desactiva el valor de PWD, el comportamiento de pwd no está especificado". Es posible que desee incluir esto en su respuesta. Se aclara para siempre que ninguna de las dos opciones debe ser "preferida" (excepto dependiendo de si desea o no enlaces simbólicos) – ArjunShankar
Gracias @Arjun, editado en. – Mat