1 #!/usr/bin/env bash
2
3 ### (( )) result
4 (( 1 )) && echo True
5 (( 0 )) || echo False
6 # stdout-json: "True\nFalse\n"
7
8 ### negative number is true
9 (( -1 )) && echo True
10 # stdout: True
11
12 ### (( )) in if statement
13 if (( 3 > 2)); then
14 echo True
15 fi
16 # stdout: True
17
18 ### (( ))
19 # What is the difference with this and let? One difference: spaces are allowed.
20 (( x = 1 ))
21 (( y = x + 2 ))
22 echo $x $y
23 # stdout: 1 3
24
25 ### (( )) with arrays
26 a=(4 5 6)
27 (( sum = a[0] + a[1] + a[2] ))
28 echo $sum
29 # stdout: 15
30 # OK zsh stdout: 9
31
32 ### (( )) with error
33 (( a = 0 )) || echo false
34 (( b = 1 )) && echo true
35 (( c = -1 )) && echo true
36 echo $((a + b + c))
37 # stdout-json: "false\ntrue\ntrue\n0\n"