8eac1f9477
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).
25 lines
544 B
Plaintext
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" ]
|