diff options
author | jilles <jilles@FreeBSD.org> | 2010-04-17 14:35:46 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2010-04-17 14:35:46 +0000 |
commit | 286029c47836178eb034bb3cff6b884f0a4ed74d (patch) | |
tree | bb356bbe40acadf8907130038ede6c0a505c1777 /tools | |
parent | 66c04c10a0daa86550d2714dec2c47bd88f184b3 (diff) | |
download | FreeBSD-src-286029c47836178eb034bb3cff6b884f0a4ed74d.zip FreeBSD-src-286029c47836178eb034bb3cff6b884f0a4ed74d.tar.gz |
sh: On startup of the shell, use PWD from the environment if it is valid.
Unset PWD if it is incorrect and no value for it can be determined.
This preserves the logical current directory across shell invocations.
Example (assuming /home is a symlink):
$ cd
$ pwd
/home/foo
$ sh
$ pwd
/home/foo
Formerly the second pwd would show the physical path (symlinks resolved).
Diffstat (limited to 'tools')
-rw-r--r-- | tools/regression/bin/sh/parameters/pwd2.0 | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tools/regression/bin/sh/parameters/pwd2.0 b/tools/regression/bin/sh/parameters/pwd2.0 new file mode 100644 index 0000000..29b5531 --- /dev/null +++ b/tools/regression/bin/sh/parameters/pwd2.0 @@ -0,0 +1,24 @@ +# $FreeBSD$ +# Check that PWD is exported and accepted from the environment. +set -e + +T=$(mktemp -d ${TMPDIR:-/tmp}/sh-test.XXXXXX) +trap 'rm -rf $T' 0 +cd -P $T +TP=$(pwd) +mkdir test1 +ln -s test1 link +cd link +[ "$PWD" = "$TP/link" ] +[ "$(pwd)" = "$TP/link" ] +[ "$(pwd -P)" = "$TP/test1" ] +[ "$(sh -c pwd)" = "$TP/link" ] +[ "$(sh -c pwd\ -P)" = "$TP/test1" ] +cd .. +[ "$(pwd)" = "$TP" ] +cd -P link +[ "$PWD" = "$TP/test1" ] +[ "$(pwd)" = "$TP/test1" ] +[ "$(pwd -P)" = "$TP/test1" ] +[ "$(sh -c pwd)" = "$TP/test1" ] +[ "$(sh -c pwd\ -P)" = "$TP/test1" ] |