1 | ## oils_failures_allowed: 3
|
2 | ## compare_shells: bash mksh
|
3 |
|
4 | # TODO: compare with AT&T ksh - it has this feature
|
5 |
|
6 | #### K and V are variables in (( array[K] = V ))
|
7 | K=5
|
8 | V=42
|
9 | typeset -a array
|
10 | (( array[K] = V ))
|
11 |
|
12 | echo array[5]=${array[5]}
|
13 | echo keys = ${!array[@]}
|
14 | echo values = ${array[@]}
|
15 | ## STDOUT:
|
16 | array[5]=42
|
17 | keys = 5
|
18 | values = 42
|
19 | ## END
|
20 |
|
21 | #### test -v with strings
|
22 | test -v str
|
23 | echo str=$?
|
24 |
|
25 | str=x
|
26 |
|
27 | test -v str
|
28 | echo str=$?
|
29 |
|
30 | ## STDOUT:
|
31 | str=1
|
32 | str=0
|
33 | ## END
|
34 | ## BUG mksh STDOUT:
|
35 | str=2
|
36 | str=2
|
37 | ## END
|
38 |
|
39 | #### test -v with arrays
|
40 |
|
41 | typeset -a a
|
42 |
|
43 | test -v a
|
44 | echo a=$?
|
45 | test -v 'a[0]'
|
46 | echo "a[0]=$?"
|
47 | echo
|
48 |
|
49 | a[0]=1
|
50 |
|
51 | test -v a
|
52 | echo a=$?
|
53 | test -v 'a[0]'
|
54 | echo "a[0]=$?"
|
55 | echo
|
56 |
|
57 | test -v 'a[1]'
|
58 | echo "a[1]=$?"
|
59 |
|
60 | # stupid rule about undefined 'x'
|
61 | test -v 'a[x]'
|
62 | echo "a[x]=$?"
|
63 | echo
|
64 |
|
65 | ## STDOUT:
|
66 | a=1
|
67 | a[0]=1
|
68 |
|
69 | a=0
|
70 | a[0]=0
|
71 |
|
72 | a[1]=1
|
73 | a[x]=0
|
74 |
|
75 | ## END
|
76 |
|
77 | ## BUG mksh STDOUT:
|
78 | a=2
|
79 | a[0]=2
|
80 |
|
81 | a=2
|
82 | a[0]=2
|
83 |
|
84 | a[1]=2
|
85 | a[x]=2
|
86 |
|
87 | ## END
|
88 |
|
89 | #### test -v with assoc arrays
|
90 |
|
91 | typeset -A A
|
92 |
|
93 | test -v A
|
94 | echo A=$?
|
95 | test -v 'A[0]'
|
96 | echo "A[0]=$?"
|
97 | echo
|
98 |
|
99 | A['0']=x
|
100 |
|
101 | test -v A
|
102 | echo A=$?
|
103 | test -v 'A[0]'
|
104 | echo "A[0]=$?"
|
105 | echo
|
106 |
|
107 | test -v 'A[1]'
|
108 | echo "A[1]=$?"
|
109 |
|
110 | # stupid rule about undefined 'x'
|
111 | test -v 'A[x]'
|
112 | echo "A[x]=$?"
|
113 | echo
|
114 |
|
115 | ## STDOUT:
|
116 | A=1
|
117 | A[0]=1
|
118 |
|
119 | A=0
|
120 | A[0]=0
|
121 |
|
122 | A[1]=1
|
123 | A[x]=1
|
124 |
|
125 | ## END
|
126 |
|
127 | ## N-I ksh STDOUT:
|
128 | A=1
|
129 | A[0]=1
|
130 |
|
131 | A=1
|
132 | A[0]=1
|
133 |
|
134 | A[1]=1
|
135 | A[x]=1
|
136 |
|
137 | ## END
|
138 |
|
139 | ## BUG mksh STDOUT:
|
140 | A=2
|
141 | A[0]=2
|
142 |
|
143 | A=2
|
144 | A[0]=2
|
145 |
|
146 | A[1]=2
|
147 | A[x]=2
|
148 |
|
149 | ## END
|