1 #!/usr/bin/env bash
2 #
3 # Test $0 $1 $2
4
5 ### Normal and braced
6 $SH -c 'echo $0 $1 ${2}' a b c d
7 # stdout: a b c
8
9 ### In function
10 myfunc() {
11 echo $1 ${2}
12 }
13 myfunc a b c d
14 # stdout: a b
15
16 ### $0 with -c
17 $SH -c 'echo $0' | grep -o 'sh$'
18 # stdout: sh
19
20 ### $0 with stdin
21 echo 'echo $0' | $SH | grep -o 'sh$'
22 # stdout: sh
23
24 ### $0 with -i
25 echo 'echo $0' | $SH -i | grep -o 'sh$'
26 # stdout: sh
27
28 ### $0 with filename
29 s=_tmp/dollar0
30 echo 'echo $0' > $s
31 chmod +x $s
32 $SH $s
33 # stdout: _tmp/dollar0
34
35 ### $@ with filename
36 s=_tmp/dollar0
37 echo 'echo $@' > $s
38 chmod +x $s
39 $SH $s a b c
40 # stdout: a b c