| 1 | #!/bin/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" |