| # this is needed because posix mode restricts tilde expansion to assignment |
| # statements preceding a command, instead of the default of expanding all |
| # assignment statements on the line (e.g., after `export'). Without this, |
| # the next-to-last test fails |
| set +o posix |
| |
| HOME=/usr/xyz |
| SHELL=~/bash |
| echo ~ch\et |
| echo ~/"foo" |
| echo "~chet"/"foo" |
| echo \~chet/"foo" |
| echo \~chet/bar |
| echo ~\chet/bar |
| echo ~chet""/bar |
| echo ":~chet/" |
| echo abcd~chet |
| echo "SHELL=~/bash" |
| echo $SHELL |
| echo abcd:~chet |
| path=/usr/ucb:/bin:~/bin:~/tmp/bin:/usr/bin |
| echo $path |
| |
| cd /usr |
| cd /tmp |
| echo ~- |
| echo ~+ |
| |
| XPATH=/bin:/usr/bin:. |
| |
| # yes tilde expansion |
| PPATH=$XPATH:~/bin |
| echo "$PPATH" |
| |
| # no tilde expansion |
| PPATH="$XPATH:~/bin" |
| echo "$PPATH" |
| |
| # yes tilde expansion |
| export PPATH=$XPATH:~/bin |
| echo "$PPATH" |
| declare -x PPATH=$XPATH:~/bin |
| echo "$PPATH" |
| |
| # no tilde expansion |
| export PPATH="$XPATH:~/bin" |
| echo "$PPATH" |
| declare -x PPATH="$XPATH:~/bin" |
| echo "$PPATH" |
| |
| printf "%q\n" '~' |
| |
| # more tests of tilde expansion when executing case commands |
| case ~ in |
| $HOME) echo ok 1;; |
| *) echo bad 1 ;; |
| esac |
| |
| case ~ in |
| ~) echo ok 2 ;; |
| \~) echo bad 2a ;; |
| *) echo bad 2b ;; |
| esac |
| |
| case $unset in |
| "") echo ok 3 ;; |
| *) echo bad 3 ;; |
| esac |
| |
| USER=root # should exist just about everywhere |
| echo ~$USER |