HOME=/usr/xyz XPATH=/bin:/usr/bin:. ADDPATH=PATH=~/bin:$XPATH echo $ADDPATH unset ADDPATH : ${ADDPATH:=~/bin:~/bin2:$XPATH} echo $ADDPATH unset ADDPATH : ${ADDPATH:=PATH=~/bin:~/bin2:$XPATH} echo $ADDPATH cat << ! ~/bin ! echo "~" echo ${TPATH:-~} echo "${TPATH:-~}" echo "${TPATH:-"~"}" echo "${XPATH+~}" recho "\a" recho "${TPATH:-\a}" SHELL=~/bash echo $SHELL case $SHELL in ~/bash) echo ok;; *) echo bad;; esac somevar= echo "${somevar:-~}" echo "${somevar:-"~"}" echo make -k FOO=~/mumble typeset FOO=~/mumble echo "$FOO" h=HOME=~ echo $h export h=HOME=~ echo $h x=1234 HOME='/usr/$x/abc' echo ~ # behavior differs here in posix mode set -o posix eval echo $h eval $h echo $HOME set +o posix eval echo $h eval $h echo $HOME