数值计算
整数和浮点数类型
Zsh 中通常不用指定变量类型,但也可以指定。对数值计算来说,区分整数和浮点数是很重要的,不指定变量类型会带来不方便。
# 整数
integer i=10
# (t) 用于输出变量类型
echo ${(t)i}#integer
# 浮点数
float f=1.23
echo ${(t)f}#float
# 注意一旦指定了变量类型,类型就不会变了,除非再重新指定其他类型,或者用 unset 删除掉
# 如果把浮点数赋值给整数变量,会取整
i=12.3
echo $i#12
# 整数是 64 位的带符号整数(在 32 位系统下也是)
echo $((-2 ** 63)) $((2 ** 63 - 1))
# 浮点数是 64 位带符号浮点数(在 32 位系统下也是)
echo $((-1.79e-308)) $((1.79e308))
运算符
数值计算主要是在 (( )) 或者 $(( )) 中进行的,在 $[ ] 或者 $var[ ](可用于数组索引的计算)中也能进行一部分,这里统一使用小括号。
数学函数
Zsh 包含了一个数学模块,如果需要使用数学函数,需要先加载 zsh/mathfunc 模块。