|
@@ -18,7 +18,7 @@ integer
|
|
|
% echo ${(t)f}
|
|
|
float
|
|
|
|
|
|
-# 注意一旦指定的变量类型,类型就不会变了,除非再重新指定其他类型,或者用 unset 删除掉
|
|
|
+# 注意一旦指定了变量类型,类型就不会变了,除非再重新指定其他类型,或者用 unset 删除掉
|
|
|
# 如果把浮点数赋值给整数变量,会取整
|
|
|
% i=12.34
|
|
|
% echo $i
|
|
@@ -38,7 +38,7 @@ float
|
|
|
|
|
|
### 运算符
|
|
|
|
|
|
-数值计算主要是在 (( )) 或者 $(( )) 中进行的,在 $[ ] 或者 $var[ ](可用于数组索引的计算)中也能进行一部分,这里统一使用小括号。
|
|
|
+数值计算主要是在 `(( ))` 或者 `$(( ))` 中进行的,在 `$[ ]` 或者 `$var[ ]`(可用于数组索引的计算)中也能进行一部分,这里统一使用小括号。
|
|
|
|
|
|
```
|
|
|
% integer i=123
|
|
@@ -62,24 +62,24 @@ float
|
|
|
运算符列表:
|
|
|
|
|
|
运算符 | 功能 | 样例
|
|
|
-\+ - * / | 四则运算 | 1 + 2 * 3 / 4
|
|
|
-** | 乘方 | 3 ** 3.5
|
|
|
-% | 取余 | 5 % 3
|
|
|
-++ -- | 自增、自减 | i++(返回 i) ++i(返回 i + 1)
|
|
|
-& \| ^ | 按位与、按位或、按位异或 | 11 & 13
|
|
|
-~ | 按位取反 | ~15
|
|
|
-<< >> | 按位左移、按位右移 | 1 << 3
|
|
|
-< <= > >= | 大小比较 | 2 <= 4
|
|
|
-== != | 相等比较 | 2 != 4
|
|
|
-&& \|\| | 逻辑与、逻辑或 | 2 <= 4 && 1 != 3 \|\| 5 > 0
|
|
|
-! | 逻辑非 | ! 1 > 2
|
|
|
-^^ | 逻辑异或(两个中只有一个为真) | 1 > 0 ^^ 1 < 0
|
|
|
-= | 赋值 | i = 10
|
|
|
-+= -= *= /= %= **= &= ^= \|= <<= >>= &&= ^^= \|\|= | 复合赋值| i += 10
|
|
|
-( ) | 调整优先级 | (1 + 2 ) * 3
|
|
|
-? : | 三元运算符 | 1 > 2 ? 100 : 200
|
|
|
-, | 逗号运算符(只返回后者) | 40, 20 == 20
|
|
|
+--- | --- | ---
|
|
|
+`+` `-` `*` `/` | 四则运算 | 1 + 2 * 3 / 4
|
|
|
+`**` | 乘方 | 3 ** 3.5
|
|
|
+`%` | 取余 | 5 % 3
|
|
|
+`++` `--` | 自增、自减 | i++(返回 i) ++i(返回 i + 1)
|
|
|
+`&` \| `^` | 按位与、按位或、按位异或 | 11 & 13
|
|
|
+`~` | 按位取反 | ~15
|
|
|
+`<<` `>>` | 按位左移、按位右移 | 1 << 3
|
|
|
+`<` `<=` `>` `>=` | 大小比较 | 2 <= 4
|
|
|
+`==` `!=` | 相等比较 | 2 != 4
|
|
|
+`&&` \|\| | 逻辑与、逻辑或 | 2 <= 4 && 1 != 3 \|\| 5 > 0
|
|
|
+`!` | 逻辑非 | ! 1 > 2
|
|
|
+`^^` | 逻辑异或(两个中只有一个为真) | 1 > 0 ^^ 1 < 0
|
|
|
+`=` | 赋值 | i = 10
|
|
|
+`+=` `-=` `*=` `/=` `%=` `**=` `&=` `^=` \|= `<<=` `>>=` `&&=` `^^=` \|\|= | 复合赋值| i += 10
|
|
|
+`( )` | 调整优先级 | (1 + 2 ) * 3
|
|
|
+`? :` | 三元运算符 | 1 > 2 ? 100 : 200
|
|
|
+`,` | 逗号运算符(只返回后者) | 40, 20 == 20
|
|
|
|
|
|
运算符的优先级和其他编程语言的差不多,不列出了,如果不确定可以加小括号。这部分内容和 c、java、javascript 等语言基本一致。
|
|
|
|
|
@@ -97,21 +97,21 @@ Zsh 包含了一个数学模块,如果需要使用数学函数,需要先加
|
|
|
函数列表:
|
|
|
|
|
|
函数名 | 功能
|
|
|
-abs | 求绝对值
|
|
|
-ceil | 向上取整
|
|
|
-floor | 向下取整
|
|
|
-int | 截断取整
|
|
|
-float | 转换成浮点数
|
|
|
-sqrt | 开平方
|
|
|
-cbrt | 开立方
|
|
|
-log | 自然对数
|
|
|
-log10 | 常用对数
|
|
|
-rand48 | 随机数
|
|
|
+--- | ---
|
|
|
+`abs` | 求绝对值
|
|
|
+`ceil` | 向上取整
|
|
|
+`floor` | 向下取整
|
|
|
+`int` | 截断取整
|
|
|
+`float` | 转换成浮点数
|
|
|
+`sqrt` | 开平方
|
|
|
+`cbrt` | 开立方
|
|
|
+`log` | 自然对数
|
|
|
+`log10` | 常用对数
|
|
|
+`rand48` | 随机数
|
|
|
|
|
|
更多函数:
|
|
|
|
|
|
-acos, acosh, asin, asinh, atan, atanh, cos, cosh, erf, erfc, exp, expm1, fabs, gamma, j0, j1, lgamma, log1p, logb, sin, sinh, tan, tanh, y0, y1, ilogb, signgam, copysign, fmod, hypot, nextafter, jn, yn, ldexp, scalb
|
|
|
+`acos`、`acosh`、`asin`、`asinh`、`atan`、`atanh`、`cos`、`cosh`、`erf`、`erfc`、`exp`、 `expm1`、`fabs`、`gamma`、`j0`、`j1`、`lgamma`、`log1p`、`logb`、`sin`、`sinh`、`tan`、 `tanh`、`y0`、`y1`、`ilogb`、`signgam`、`copysign`、`fmod`、`hypot`、`nextafter`、`jn`、 `yn`、`ldexp`、`scalb`
|
|
|
|
|
|
|
|
|
### 参考
|