Chet Ramey <chet <at> caleb.ins.cwru.edu> writes: > > > > Description: > > POSIX requires pwd(1) with the -P option to update the PWD environment > > variable with a version scrubbed of all symlinks. See > > http://www.opengroup.org/onlinepubs/009695399/utilities/pwd.html > > > > Bash currently does not do this, but leaves PWD untouched with the > > non-canonical form of the current directory. > > I agree that the standard says that, but no shell does it that way. I'm > going to ignore it for now. I'd bet that someone pinched the text in > question from the `cd' description at some point.
On further research, the requirement for `pwd -P' to set PWD was intentional, and not a mistake. See POSIX XRAT A.3 (http://www.opengroup.org/onlinepubs/009695399/xrat/xbd_chap03.html) under Symbolic Links line 1148, which states: Historically, several shells have had built-in versions of the pwd utility. In some of these shells, pwd reported the physical path, and in others, the logical path. Implementations of the shell corresponding to IEEE Std 1003.1- 2001 must report the logical path by default. Earlier versions of IEEE Std 1003.1-2001 did not require the pwd utility to be a built-in utility. Now that pwd is required to set an environment variable in the current shell execution environment, it must be a built-in utility. Also, see the followup mails to my defect report, as posted on the Austin mailing lists: http://www.opengroup.org/austin/mailarchives/ag/msg08028.html. Just because no non-compliant shell does it that way is not an excuse for bash to not do it, at least when bash is installed as the compliant sh. -- Eric Blake _______________________________________________ Bug-bash mailing list Bug-bash@gnu.org http://lists.gnu.org/mailman/listinfo/bug-bash