- Unix/Linux 初学者指南
- Unix/Linux - 首页
- Unix/Linux - 什么是 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 - I/O 重定向
- Unix/Linux - Shell 函数
- Unix/Linux - 手册页帮助
- 高级 Unix/Linux
- Unix/Linux - 标准 I/O 流
- Unix/Linux - 文件链接
- Unix/Linux - 正则表达式
- Unix/Linux - 文件系统基础
- Unix/Linux - 用户管理
- Unix/Linux - 系统性能
- Unix/Linux - 系统日志
- Unix/Linux - 信号和陷阱
Unix/Linux - Shell 关系运算符示例
Bourne Shell 支持以下特定于数值的关系运算符。除非这些值是数字,否则这些运算符不适用于字符串值。
假设变量a 为 10,变量b 为 20,则 -
运算符 | 描述 | 示例 |
---|---|---|
-eq | 检查两个操作数的值是否相等;如果相等,则条件为真。 | [ $a -eq $b ] 为假。 |
-ne | 检查两个操作数的值是否相等;如果值不相等,则条件为真。 | [ $a -ne $b ] 为真。 |
-gt | 检查左操作数的值是否大于右操作数的值;如果大于,则条件为真。 | [ $a -gt $b ] 为假。 |
-lt | 检查左操作数的值是否小于右操作数的值;如果小于,则条件为真。 | [ $a -lt $b ] 为真。 |
-ge | 检查左操作数的值是否大于或等于右操作数的值;如果大于或等于,则条件为真。 | [ $a -ge $b ] 为假。 |
-le | 检查左操作数的值是否小于或等于右操作数的值;如果小于或等于,则条件为真。 | [ $a -le $b ] 为真。 |
务必理解所有条件表达式都应放在方括号内,并且方括号周围要有空格。例如,[ $a <= $b ] 是正确的,而 [$a <= $b] 是错误的。
示例
以下是一个使用所有关系运算符的示例 -
#!/bin/sh a=10 b=20 if [ $a -eq $b ] then echo "$a -eq $b : a is equal to b" else echo "$a -eq $b: a is not equal to b" fi if [ $a -ne $b ] then echo "$a -ne $b: a is not equal to b" else echo "$a -ne $b : a is equal to b" fi if [ $a -gt $b ] then echo "$a -gt $b: a is greater than b" else echo "$a -gt $b: a is not greater than b" fi if [ $a -lt $b ] then echo "$a -lt $b: a is less than b" else echo "$a -lt $b: a is not less than b" fi if [ $a -ge $b ] then echo "$a -ge $b: a is greater or equal to b" else echo "$a -ge $b: a is not greater or equal to b" fi if [ $a -le $b ] then echo "$a -le $b: a is less or equal to b" else echo "$a -le $b: a is not less or equal to b" fi
以上脚本将生成以下结果 -
10 -eq 20: a is not equal to b 10 -ne 20: a is not equal to b 10 -gt 20: a is not greater than b 10 -lt 20: a is less than b 10 -ge 20: a is not greater or equal to b 10 -le 20: a is less or equal to b
在使用关系运算符时,需要考虑以下几点 -
运算符和表达式之间必须有空格。例如,2+2 是不正确的;应写成 2 + 2。
if...then...else...fi 语句是决策语句,将在下一章中进行解释。
unix-basic-operators.htm
广告