- 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,则 -
操作员 | 描述 | 例子 |
---|---|---|
! | 这是逻辑否定。这会将 true 条件反转为 false,反之亦然。 | [!假] 是真的。 |
-o | 这是逻辑或。如果其中一个操作数为真,则条件为真。 | [ $a -lt 20 -o $b -gt 100 ] 是正确的。 |
-A | 这是逻辑AND。如果两个操作数都为 true,则条件为 true,否则为 false。 | [ $a -lt 20 -a $b -gt 100 ] 是错误的。 |
例子
这是一个使用所有布尔运算符的示例 -
#!/bin/sh a=10 b=20 if [ $a != $b ] then echo "$a != $b : a is not equal to b" else echo "$a != $b: a is equal to b" fi if [ $a -lt 100 -a $b -gt 15 ] then echo "$a -lt 100 -a $b -gt 15 : returns true" else echo "$a -lt 100 -a $b -gt 15 : returns false" fi if [ $a -lt 100 -o $b -gt 100 ] then echo "$a -lt 100 -o $b -gt 100 : returns true" else echo "$a -lt 100 -o $b -gt 100 : returns false" fi if [ $a -lt 5 -o $b -gt 100 ] then echo "$a -lt 100 -o $b -gt 100 : returns true" else echo "$a -lt 100 -o $b -gt 100 : returns false" fi
上面的脚本将生成以下结果 -
10 != 20 : a is not equal to b 10 -lt 100 -a 20 -gt 15 : returns true 10 -lt 100 -o 20 -gt 100 : returns true 10 -lt 5 -o 20 -gt 100 : returns false
使用运算符时需要考虑以下几点 -
运算符和表达式之间必须有空格。例如,2+2是不正确的;应该写成2+2。
if...then...else...fi语句是一个决策语句,在下一章中已经解释过。
unix-basic-operators.htm