when someone abandons you,it is him that gets loss because he lost someone who truly loves him but you just lost one who doesn’t love you.
话在前头,为什么本文是整数运算,因为 bash 本身不支持浮点型的运算,换言之,bash 本身能做的也就整数类型的运算
谈一谈在 shell 中进行整数运算的几种方案
$((算术式))
如果表达式中有变量,该变量之前最好不要加 $ 符号,以免变量不存在造成语法错误
例:
1 | $ unset i |
注意和 (()) 的区别
外部程序 expr 算术式
数字与符号之间要有空白
例:
1 | $ echo `expr 2%3` |
没有乘幂
例:
1 | $ echo `expr 2 \*\* 3` |
乘号要用转义符
例:
1 | $ echo `expr 2 * 3` |
expr 是外部程序
表达式中包含 shell 的特殊字符,如 *、|、<、>、!、&、(、),要使用 \ 来转义
$[]
内置命令 declare -i
bash shell 的内置命令
使用 declare 命令的 -i 选项可以将一个变量声明为整数类型,这样在进行数学计算时就不会作为字符串处理,除了将参与运算的变量定义为整数,还得将承载结果的变量定义为整数,而且只能用整数类型的变量来承载运算结果,不能直接使用 echo 输出
例:
1 | $ declare -i m n |
仅支持最基本的数学运算(加减乘除和取余),不支持逻辑运算(比较运算、与运算、或运算、非运算),在实际开发中很少使用
内置命令 let
bash shell 的内置命令
变量和运算符直接不能有空格,否则要用引号
let 后面可以跟多个表达式
be yourself, everyone else is already taken.