163
166
4
16
8
2
4
2
2
1
0
0
0
1
1
2
-3
-2
1
0
2
131072
29
33
49
1
1
0
0
1
1
1
2
3
1
58
2
60
1
256
16
62
4
29
5
-4
4
1
32
32
1
1
32
32
4
20
1,i+=2
30
1,j+=2
20
1,i+=2
30
1,j+=2
./arith.tests: line 129: 1 ? 20 : x+=2: attempted assignment to non-variable (error token is "+=2")
20
6
6,5,3
263
255
255
127
36
40
40
40
10
10
10
10
10
10
36
36
62
63
./arith.tests: line 168: 3425#56: invalid arithmetic base (error token is "3425#56")
./arith.tests: line 171: 2#: invalid integer constant (error token is "2#")
./arith.tests: line 174: 7 = 43 : attempted assignment to non-variable (error token is "= 43 ")
./arith.tests: line 175: 2#44: value too great for base (error token is "2#44")
./arith.tests: line 176: 44 / 0 : division by 0 (error token is "0 ")
./arith.tests: line 177: let: jv += $iv: arithmetic syntax error: operand expected (error token is "$iv")
./arith.tests: line 178: jv += $iv : arithmetic syntax error: operand expected (error token is "$iv ")
./arith.tests: line 179: let: rv = 7 + (43 * 6: missing `)' (error token is "6")
./arith.tests: line 182: b / 0 : division by 0 (error token is "0 ")
./arith.tests: line 183: b /= 0 : division by 0 (error token is "0 ")
./arith.tests: line 188: 0#4: invalid number (error token is "0#4")
./arith.tests: line 189: 2#110#11: invalid number (error token is "2#110#11")
abc
def
ghi
ok
6
1
0
./arith.tests: line 207: 4 + : arithmetic syntax error: operand expected (error token is "+ ")
16
./arith.tests: line 212: 4 ? : 3 + 5 : expression expected (error token is ": 3 + 5 ")
./arith.tests: line 213: 1 ? 20 : `:' expected for conditional expression (error token is "20 ")
./arith.tests: line 214: 4 ? 20 : : expression expected (error token is ": ")
9
./arith.tests: line 220: 0 && B=42 : attempted assignment to non-variable (error token is "=42 ")
9
./arith.tests: line 223: 1 || B=88 : attempted assignment to non-variable (error token is "=88 ")
9
0
9
0
9
1
9
7
7
4
32767
32768
131072
2147483647
1
./arith.tests: line 255: 2**-1 : exponent less than 0 (error token is "1 ")
4
4
5
5
4
3
3
4
4
7
./arith.tests: line 274: 7-- : arithmetic syntax error: operand expected (error token is "- ")
./arith.tests: line 276: --x=7 : attempted assignment to non-variable (error token is "=7 ")
./arith.tests: line 277: ++x=7 : attempted assignment to non-variable (error token is "=7 ")
./arith.tests: line 279: x++=7 : attempted assignment to non-variable (error token is "=7 ")
./arith.tests: line 280: x--=7 : attempted assignment to non-variable (error token is "=7 ")
4
7
-7
7
7
./arith.tests: line 292: --x++ : ++: assignment requires lvalue (error token is "++ ")
2
2
./arith1.sub: line 15: 4-- : arithmetic syntax error: operand expected (error token is "- ")
./arith1.sub: line 16: 4++ : arithmetic syntax error: operand expected (error token is "+ ")
./arith1.sub: line 17: 4 -- : arithmetic syntax error: operand expected (error token is "- ")
./arith1.sub: line 18: 4 ++ : arithmetic syntax error: operand expected (error token is "+ ")
1
2
1
2
6
3
7
4
0
3
7
2
-2
1
./arith1.sub: line 48: ((: ++ : arithmetic syntax error: operand expected (error token is "+ ")
7
7
./arith1.sub: line 51: ((: -- : arithmetic syntax error: operand expected (error token is "- ")
7
7
7
7
1
2
1
2
1
0
5
1
6
2
3
1
4
0
./arith2.sub: line 46: ((: -- : arithmetic syntax error: operand expected (error token is "- ")
-7
-7
./arith2.sub: line 50: ((: ++ : arithmetic syntax error: operand expected (error token is "+ ")
7
7
-7
-7
7
7
1
1
4
5
-3
2
4
5000
5000
1
0
0
1
2147483649
0
0
0
0
0
0
-9223372036854775808
-9223372036854775808
-9223372036854775808
-9223372036854775808
-9223372036854775808
-9223372036854775808
-9223372036854775808
-9223372036854775808
-9223372036854775808
-9223372036854775808
9223372036854775805 9223372036854775806 9223372036854775807
123 456
123 456
123 456
123 456
123 456
123 456
1
1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0
0, 0
0, 1
efg
e
efg
e
abcdefg
efg
0
0
0
0
0
0
0
./arith9.sub: line 4: a: unbound variable
./arith9.sub: line 5: a: unbound variable
0
after 3 0
0
after 4 0
./arith9.sub: line 14: b: expression recursion level exceeded (error token is "b")
+ var=42
+ echo 42
42
+ echo 0
0
+ echo 0
0
+ echo 0
0
+ ((  42  ))
+ echo 0
0
+ ((    ))
+ echo 1
1
+ set +x
./arith9.sub: line 37: 4+: arithmetic syntax error: operand expected (error token is "+")
x = 4+ y =
== arraysub ==
=== assoc_expand_once unset ===
declare -a a=([0]="10")
declare -a a=([0]="11")
declare -a a=([0]="12")
declare -a a=([0]="13")
declare -a a=([0]="14")
./arith10.sub: line 33: " ": arithmetic syntax error: operand expected (error token is "" "")
declare -a a=([0]="16")
declare -a a=([0]="17")
declare -a a=([0]="18")
./arith10.sub: line 38: "": arithmetic syntax error: operand expected (error token is """")
declare -a a=([0]="20")
declare -a a=([0]="21")
declare -a a=([0]="22")
declare -a a=([0]="23")
./arith10.sub: line 44: ((: `a[]': not a valid identifier
declare -a a=([0]="0")
./arith10.sub: line 45: `a[]': not a valid identifier
declare -a a=([0]="0")
declare -a a=([0]="26")
=== assoc_expand_once set ===
declare -a a=([0]="10")
declare -a a=([0]="11")
declare -a a=([0]="12")
declare -a a=([0]="13")
declare -a a=([0]="14")
./arith10.sub: line 33: " ": arithmetic syntax error: operand expected (error token is "" "")
declare -a a=([0]="16")
declare -a a=([0]="17")
./arith10.sub: line 36: " ": arithmetic syntax error: operand expected (error token is "" "")
./arith10.sub: line 38: "": arithmetic syntax error: operand expected (error token is """")
declare -a a=([0]="20")
declare -a a=([0]="21")
./arith10.sub: line 41: "": arithmetic syntax error: operand expected (error token is """")
declare -a a=([0]="23")
./arith10.sub: line 44: ((: `a[]': not a valid identifier
declare -a a=([0]="0")
./arith10.sub: line 45: `a[]': not a valid identifier
declare -a a=([0]="0")
./arith10.sub: line 46: "": arithmetic syntax error: operand expected (error token is """")
== substring ==
12
12


345
== cond ==
1
1
0
== arithsub ==
0
1 0
0
2 0
./arith10.sub: line 80: "" : arithmetic syntax error: operand expected (error token is """ ")
0
4 0
5 0
6 0
== arithcmd ==
1 1
2 1
3 1
./arith10.sub: line 89: ((: 1 -  : arithmetic syntax error: operand expected (error token is "-  ")
4 1
== letbltin ==
1 1
2 1
./arith10.sub: line 94: let: 0 - "": arithmetic syntax error: operand expected (error token is """")
3 1
./arith10.sub: line 95: let: 0 - "": arithmetic syntax error: operand expected (error token is """")
4 1
8 12
./arith.tests: line 335: ((: x=9 y=41 : arithmetic syntax error in expression (error token is "y=41 ")
./arith.tests: line 339: a b: arithmetic syntax error in expression (error token is "b")
./arith.tests: line 340: ((: a b: arithmetic syntax error in expression (error token is "b")
42
42
42
42
42
42
./arith.tests: line 355: 'foo' : arithmetic syntax error: operand expected (error token is "'foo' ")
./arith.tests: line 358: b[c]d: arithmetic syntax error in expression (error token is "d")
