summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2010-04-17 14:35:46 +0000
committerjilles <jilles@FreeBSD.org>2010-04-17 14:35:46 +0000
commit286029c47836178eb034bb3cff6b884f0a4ed74d (patch)
treebb356bbe40acadf8907130038ede6c0a505c1777 /tools
parent66c04c10a0daa86550d2714dec2c47bd88f184b3 (diff)
downloadFreeBSD-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.024
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" ]
OpenPOWER on IntegriCloud