Shell 和其他编程语言一样,支持多种运算符,包括:
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
例如,两个数相加( 注意使用的是反引号 ` 而不是单引号 '):
执行脚本,输出结果如下所示:
两点注意:
下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20:
注意:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]
算术运算符实例如下:
执行脚本,输出结果如下所示:
注意:
- 乘号(*)前边必须加反斜杠(\)才能实现乘法运算;
- if...then...fi 是条件语句,后续将会讲解。
- 在 MAC 中 shell 的 expr 语法是: $((表达式)),此处表达式中的 "*" 不需要转义符号 "\" 。
关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:
关系运算符实例如下:
执行脚本,输出结果如下所示:
下表列出了常用的布尔运算符,假定变量 a 为 10,变量 b 为 20:
布尔运算符实例如下:
执行脚本,输出结果如下所示:
以下介绍 Shell 的逻辑运算符,假定变量 a 为 10,变量 b 为 20:
实例
逻辑运算符实例如下:
执行脚本,输出结果如下所示:
下表列出了常用的字符串运算符,假定变量 a 为 "abc",变量 b 为 "efg":
字符串运算符实例如下:
执行脚本,输出结果如下所示:
文件测试运算符用于检测 Unix 文件的各种属性。
属性检测描述如下:
其他检查符:
变量 file 表示文件 /var/www/xxxxxx/test.sh,它的大小为 100 字节,具有 rwx 权限。下面的代码,将检测该文件的各种属性:
执行脚本,输出结果如下所示:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70006413/viewspace-2839711/ ,如需转载,请注明出处,否则将追究法律责任。