シェルに依ります。
オリジナルのshには型はありません。あるいは、常に文字列型です。
Bashの場合だと、
・普通の変数(文字列)
・配列(数値添え字)
・連想配列(文字列添え字)(他言語のハッシュ、辞書)
・整数
の型があります。連想配列と整数の変数は宣言が必須です。
Bash
1<普通の変数>
2A=1
3A=A+2
4echo $A ・・・A+2 と表示
5A=1
6A=$A+2
7echo $A ・・・1+2 と表示
8
9<整数型変数>
10declare -i B
11B=1
12B=B+2
13echo $B ・・・3 と表示
14
15<配列>
16C[foo]=bar
17declare -p C ・・・ C='([0]="bar")' と表示(未定義のfooはゼロと見なされるため)
18echo ${C[0]} ・・・ bar と表示
19C=(x y z)
20echo ${C[1]} ・・・ y と表示
21
22<連想配列>
23declare -A D
24D[foo]=bar
25declare -p D ・・・ D='([foo]="bar" )' と表示
26i=foo
27echo ${D[$i]} ・・・ bar と表示
普通の変数でも、数値演算は可能です。
Bash
1A=1
2let A=A+2
3echo $A ・・・ 3 と表示
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。