1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【Linux】shell脚本实战-各类运算符介绍

【Linux】shell脚本实战-各类运算符介绍

时间:2024-03-30 21:41:54

相关推荐

【Linux】shell脚本实战-各类运算符介绍

文章目录

前言一. 复习之前内容1. 算术运算符2. 常见的算术运算命令二. 关系运算符三. 布尔运算符四. 逻辑运算符五. 字符串运算符六. 文件测试运算符总结

前言

上几篇文章我们主要讨论了shell的脚本基础,以及基础的运算符,在这里我们稍微来复习下之前的内容:

一. 复习之前内容

1. 算术运算符

下表列出了常用的算术运算符,假定变量 a=10,变量 b=20:

**注意:**条件表达式要放在方括号之间,并且要有空格,例如:[a==a==a==b]是错误的,必须写成[ $a == $b ]

2. 常见的算术运算命令

二. 关系运算符

在日常工作中,我们除了要进行数学运算之外,有时候还要进行关系运算,所谓的关系运算就是大于,等于,小于等等。

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。**

下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:

关系运算符实例练习:

#!/bin/basha=10b=20if [ $a -eq $b ]thenecho "$a -eq $b : a 等于 b"elseecho "$a -eq $b: a 不等于 b"fiif [ $a -ne $b ]thenecho "$a -ne $b: a 不等于 b"elseecho "$a -ne $b : a 等于 b"fiif [ $a -gt $b ]thenecho "$a -gt $b: a 大于 b"elseecho "$a -gt $b: a 不大于 b"fiif [ $a -lt $b ]thenecho "$a -lt $b: a 小于 b"elseecho "$a -lt $b: a 不小于 b"fiif [ $a -ge $b ]thenecho "$a -ge $b: a 大于或等于 b"elseecho "$a -ge $b: a 小于 b"fiif [ $a -le $b ]thenecho "$a -le $b: a 小于或等于 b"elseecho "$a -le $b: a 大于 b"fi

执行结果:

[root@ecs-c13b ~]# bash ysf.sh 10 -eq 20: a 不等于 b10 -ne 20: a 不等于 b10 -gt 20: a 不大于 b10 -lt 20: a 小于 b10 -ge 20: a 小于 b10 -le 20: a 小于或等于 b[root@ecs-c13b ~]#

三. 布尔运算符

下表列出了常用的布尔运算符,假定变量 a 为 10,变量 b 为 20:

布尔运算符实例如下:

#!/bin/basha=10b=20if [ $a != $b ]thenecho "$a != $b : a 不等于 b"elseecho "$a == $b: a 等于 b"fiif [ $a -lt 100 -a $b -gt 15 ]thenecho "$a 小于 100 且 $b 大于 15 : 返回 true"elseecho "$a 小于 100 且 $b 大于 15 : 返回 false"fiif [ $a -lt 100 -o $b -gt 100 ]thenecho "$a 小于 100 或 $b 大于 100 : 返回 true"elseecho "$a 小于 100 或 $b 大于 100 : 返回 false"fiif [ $a -lt 5 -o $b -gt 100 ]thenecho "$a 小于 5 或 $b 大于 100 : 返回 true"elseecho "$a 小于 5 或 $b 大于 100 : 返回 false"fi

[root@ecs-c13b ~]# bash ysf.sh 10 != 20 : a 不等于 b10 小于 100 且 20 大于 15 : 返回 true10 小于 100 或 20 大于 100 : 返回 true10 小于 5 或 20 大于 100 : 返回 false[root@ecs-c13b ~]#

四. 逻辑运算符

以下介绍 Shell 的逻辑运算符,假定变量 a 为 10,变量 b 为 20:

逻辑运算符实例如下:

[root@ecs-c13b ~]# cat ysf.sh #!/bin/basha=10b=20if [[ $a -lt 100 && $b -gt 100 ]]thenecho "返回 true"elseecho "返回 false"fiif [[ $a -lt 100 || $b -gt 100 ]]thenecho "返回 true"elseecho "返回 false"fi

返回结果:

[root@ecs-c13b ~]# bash ysf.sh 返回 false返回 true

五. 字符串运算符

下表列出了常用的字符串运算符,假定变量 a 为 “abc”,变量 b 为 “efg”:

字符串运算符实例如下:

#!/bin/basha="abc"b="efg"if [ $a = $b ]thenecho "$a = $b : a 等于 b"elseecho "$a = $b: a 不等于 b"fiif [ $a != $b ]thenecho "$a != $b : a 不等于 b"elseecho "$a != $b: a 等于 b"fiif [ -z $a ]thenecho "-z $a : 字符串长度为 0"elseecho "-z $a : 字符串长度不为 0"fiif [ -n "$a" ]thenecho "-n $a : 字符串长度不为 0"elseecho "-n $a : 字符串长度为 0"fiif [ $a ]thenecho "$a : 字符串不为空"elseecho "$a : 字符串为空"fi

返回结果:

**[root@ecs-c13b ~]# bash ysf01.sh abc = efg: a 不等于 babc != efg : a 不等于 b-z abc : 字符串长度不为 0-n abc : 字符串长度不为 0abc : 字符串不为空**

六. 文件测试运算符

文件测试运算符用于检测 Unix 文件的各种属性。

属性检测描述如下:

其他检查符:

-S: 判断某文件是否 socket。-L: 检测文件是否存在并且是一个符号链接。

总结

本文主要介绍了各类运算符,这些运算符为后期你熟练掌握shell脚本打下了基础。 因为条件语句,大多基于这些运算符来做判断。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。