- Unix / Linux 初学者
- Unix / Linux - 主页
- Unix / Linux - 入门
- Unix / Linux - 文件管理
- Unix / Linux - 目录
- Unix / Linux - 文件权限
- Unix / Linux - 环境
- Unix / Linux - 基本实用程序
- Unix / Linux - 管道和过滤器
- Unix / Linux - 进程
- Unix / Linux - 通信
- Unix / Linux - vi 编辑器
- Unix/Linux Shell 编程
- Unix / Linux - Shell 脚本
- Unix / Linux - 什么是 Shell?
- Unix / Linux - 使用变量
- Unix / Linux - 特殊变量
- Unix / Linux - 使用数组
- Unix / Linux - 基本运算符
- Unix / Linux - 决策
- Unix / Linux - Shell 循环
- Unix / Linux - 循环控制
- Unix / Linux - Shell 替换
- Unix / Linux - 引用机制
- Unix / Linux - IO 重定向
- Unix / Linux - Shell 函数
- Unix / Linux - 联机帮助页
Unix / Linux - Shell 算术运算符示例
Bourne Shell 支持以下算术运算符。
假设变量a为 10,变量b为 20,则 -
操作员 | 描述 | 例子 |
---|---|---|
+(加法) | 在运算符两侧添加值 | `expr $a + $b` 将给出 30 |
-(减法) | 从左手操作数中减去右手操作数 | `expr $a - $b` 将给出 -10 |
*(乘法) | 将运算符两侧的值相乘 | `expr $a \* $b` 将给出 200 |
/ (分配) | 将左手操作数除以右手操作数 | `expr $b / $a` 将给出 2 |
%(模数) | 将左手操作数除以右手操作数并返回余数 | `expr $b % $a` 将给出 0 |
=(作业) | 将右操作数赋值给左操作数 | a = $b 会将 b 的值赋给 a |
==(平等) | 比较两个数字,如果两个数字相同则返回 true。 | [ $a == $b ] 将返回 false。 |
!=(不等于) | 比较两个数字,如果两个不同则返回 true。 | [ $a != $b ] 将返回 true。 |
理解所有条件表达式都应该位于方括号内并在其周围留有空格,这一点非常重要,例如[ $a == $b ]是正确的,而[$a==$b]是不正确的。
所有算术计算都是使用长整数完成的。
例子
这是一个使用所有算术运算符的示例 -
#!/bin/sh a=10 b=20 val=`expr $a + $b` echo "a + b : $val" val=`expr $a - $b` echo "a - b : $val" val=`expr $a \* $b` echo "a * b : $val" val=`expr $b / $a` echo "b / a : $val" val=`expr $b % $a` echo "b % a : $val" if [ $a == $b ] then echo "a is equal to b" fi if [ $a != $b ] then echo "a is not equal to b" fi
上面的脚本将产生以下结果 -
a + b : 30 a - b : -10 a * b : 200 b / a : 2 b % a : 0 a is not equal to b
使用算术运算符时需要考虑以下几点 -
运算符和表达式之间必须有空格。例如,2+2是不正确的;应该写成2+2。
完整的表达式应括在' '之间,称为引号。
您应该在*符号上使用\来进行乘法。
if...then...fi语句是一个决策语句,在下一章中已经解释过。
unix-basic-operators.htm