Jari Aalto | d166f04 | 1997-06-05 14:59:13 +0000 | [diff] [blame] | 1 | # this is needed because posix mode restricts tilde expansion to assignment |
| 2 | # statements preceding a command, instead of the default of expanding all |
| 3 | # assignment statements on the line (e.g., after `export'). Without this, |
| 4 | # the next-to-last test fails |
| 5 | set +o posix |
| 6 | |
Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 7 | HOME=/usr/xyz |
Jari Aalto | ccc6cda | 1996-12-23 17:02:34 +0000 | [diff] [blame] | 8 | SHELL=~/bash |
Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 9 | echo ~ch\et |
Jari Aalto | ccc6cda | 1996-12-23 17:02:34 +0000 | [diff] [blame] | 10 | echo ~/"foo" |
Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 11 | echo "~chet"/"foo" |
| 12 | echo \~chet/"foo" |
| 13 | echo \~chet/bar |
| 14 | echo ~\chet/bar |
| 15 | echo ~chet""/bar |
| 16 | echo ":~chet/" |
| 17 | echo abcd~chet |
| 18 | echo "SHELL=~/bash" |
Jari Aalto | ccc6cda | 1996-12-23 17:02:34 +0000 | [diff] [blame] | 19 | echo $SHELL |
Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 20 | echo abcd:~chet |
Jari Aalto | ccc6cda | 1996-12-23 17:02:34 +0000 | [diff] [blame] | 21 | path=/usr/ucb:/bin:~/bin:~/tmp/bin:/usr/bin |
| 22 | echo $path |
| 23 | |
| 24 | cd /usr |
| 25 | cd /tmp |
| 26 | echo ~- |
| 27 | echo ~+ |
| 28 | |
| 29 | XPATH=/bin:/usr/bin:. |
| 30 | |
| 31 | # yes tilde expansion |
| 32 | PPATH=$XPATH:~/bin |
| 33 | echo "$PPATH" |
| 34 | |
| 35 | # no tilde expansion |
| 36 | PPATH="$XPATH:~/bin" |
| 37 | echo "$PPATH" |
| 38 | |
| 39 | # yes tilde expansion |
| 40 | export PPATH=$XPATH:~/bin |
| 41 | echo "$PPATH" |
Jari Aalto | d166f04 | 1997-06-05 14:59:13 +0000 | [diff] [blame] | 42 | declare -x PPATH=$XPATH:~/bin |
| 43 | echo "$PPATH" |
Jari Aalto | ccc6cda | 1996-12-23 17:02:34 +0000 | [diff] [blame] | 44 | |
| 45 | # no tilde expansion |
| 46 | export PPATH="$XPATH:~/bin" |
| 47 | echo "$PPATH" |
Jari Aalto | d166f04 | 1997-06-05 14:59:13 +0000 | [diff] [blame] | 48 | declare -x PPATH="$XPATH:~/bin" |
| 49 | echo "$PPATH" |
| 50 | |
Chet Ramey | ac50fba | 2014-02-26 09:36:43 -0500 | [diff] [blame] | 51 | printf "%q\n" '~' |
| 52 | |
Jari Aalto | d166f04 | 1997-06-05 14:59:13 +0000 | [diff] [blame] | 53 | # more tests of tilde expansion when executing case commands |
| 54 | case ~ in |
| 55 | $HOME) echo ok 1;; |
| 56 | *) echo bad 1 ;; |
| 57 | esac |
| 58 | |
| 59 | case ~ in |
| 60 | ~) echo ok 2 ;; |
| 61 | \~) echo bad 2a ;; |
| 62 | *) echo bad 2b ;; |
| 63 | esac |
| 64 | |
| 65 | case $unset in |
| 66 | "") echo ok 3 ;; |
| 67 | *) echo bad 3 ;; |
| 68 | esac |
Jari Aalto | 0628567 | 2006-10-10 14:15:34 +0000 | [diff] [blame] | 69 | |
| 70 | USER=root # should exist just about everywhere |
| 71 | echo ~$USER |