1 #!/bin/bash
2
3 ### ~ expansion in assignment
4 HOME=/home/bob
5 a=~/src
6 echo $a
7 # stdout: /home/bob/src
8
9 ### ~ expansion in readonly assignment
10 # dash fails here!
11 # http://stackoverflow.com/questions/8441473/tilde-expansion-doesnt-work-when-i-logged-into-gui
12 HOME=/home/bob
13 readonly const=~/src
14 echo $const
15 # stdout: /home/bob/src
16 # BUG dash stdout: ~/src
17
18 ### No tilde expansion in word that looks like assignment but isn't
19 # bash and mksh mistakenly expand here!
20 # bash fixes this in POSIX mode (gah).
21 # http://lists.gnu.org/archive/html/bug-bash/2016-06/msg00001.html
22 HOME=/home/bob
23 echo x=~
24 # stdout: x=~
25 # BUG bash/mksh stdout: x=/home/bob
26
27 ### tilde expansion of word after redirect
28 HOME=$TMP
29 echo hi > ~/tilde1.txt
30 cat $HOME/tilde1.txt | wc -c
31 # stdout: 3
32 # status: 0