]>
Commit | Line | Data |
---|---|---|
d233b485 CR |
1 | # This isn't perfect behavior, but it establishes a baseline and will provide |
2 | # a way to detect behavior changes | |
3 | ||
4 | echo a1 | |
5 | a[0]= a[1]=; recho "${a[@]:-y}" | |
6 | unset a | |
7 | ||
8 | echo a2 | |
9 | a[1]=; recho "${a[@]:-y}" | |
10 | a[1]=; recho "${a[*]:-z}" | |
11 | unset a | |
12 | ||
13 | echo a3 | |
14 | a[0]= a[1]=x; recho "${a[@]:-y}" | |
15 | unset a | |
16 | ||
17 | echo a4 | |
18 | a[0]= a[1]=x; recho ${a[@]:+y} | |
19 | unset a | |
20 | ||
21 | echo p1 | |
22 | set '' '' | |
23 | recho "${@:-y}" | |
24 | ||
25 | shift $# | |
26 | ||
27 | echo p2 | |
28 | set '' x | |
29 | recho "${@:-y}" | |
30 | ||
31 | shift $# | |
32 | ||
33 | echo p3 | |
34 | set '' x | |
35 | recho ${@:+y} | |
36 | ||
37 | # problems with * and null expansions dating back to bash's earliest days | |
38 | A=(''); set -- '' | |
39 | ||
40 | echo "<${A[*]:-X}>" "<${*:-X}>" "<${A:-X}>" "<${A[0]:-X}>" | |
41 | ||
42 | IFS= | |
43 | A=('' ''); set -- '' '' | |
44 | B='' | |
45 | ||
46 | echo "<${A[*]:-X}>" "<${*:-X}>" "<${B:-X}>" "<${B[*]:-X}>" |