freebsd-dev/tools/regression/bin/sh/parameters/pwd2.0
Jilles Tjoelker 8eac1f9477 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).
2010-04-17 14:35:46 +00:00

25 lines
544 B
Plaintext

# $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" ]