1 #!/usr/bin/env bash
2 #
3 # let arithmetic.
4
5 ### let
6 # NOTE: no spaces are allowed. How is this tokenized?
7 let x=1
8 let y=x+2
9 let z=y*3 # zsh treats this as a glob; bash doesn't
10 let z2='y*3' # both are OK with this
11 echo $x $y $z $z2
12 # stdout: 1 3 9 9
13 # OK zsh stdout-json: ""
14 # OK zsh status: 1
15
16 ### let with ()
17 let x=( 1 )
18 let y=( x + 2 )
19 let z=( y * 3 )
20 echo $x $y $z
21 # stdout: 1 3 9
22 # status: 0
23 # N-I mksh/zsh stdout-json: ""
24 # N-I mksh/zsh status: 1