shell中的运算
1> 数学比较运算
-eq 等于
-gt 大于
-lt 小于
-ge 大于或等于
-le 小于或等于
-ne 不等于
2> 字符串比较运算
注意字符串一定要用引号引起来
== 检测两个字符串是否相等 相等返回true

!= 检测两个字符串是否相等,不相等返回true
-z 检测字符串长度是否为0
-n 检测字符串长度是否不为0

3> 文件比较与检查
-d 检查文件是否存在且为目录

返回值为1,说明不存在,在Linux操作系统中,只有当返回值为0的时候才算是true。
-e 检查文件或者目录是否存在
-f 检查文件是否存在且为文件

-r 检查文件是否存在且为可读
-s 检查文件是否存在且不为空
-w 检查文件是否存在且可写
-x 检查文件是否存在且可执行
-O 检查文件是否存在且被当前用户拥有
-G 检查文件是否存在并且默认组为当前用户组
file1 -nt file2 检查file1是否比file2新
file1 -ot file2 检查file1是否比file2旧
file1 -ef file2 检查file1与file2是否指向同一个inode,也就是说是否拥有相同的硬链接
![]()
4> 逻辑运算
逻辑与运算 &&
逻辑或运算 ||
逻辑非运算 !
5> 赋值运算
= 赋值运算符
if语法
语法一:单if语句
使用范围:只需要一步判断,条件返回真干什么或者条件返回假干什么。
语句格式:
if [condition] #condition值为true或false
then
commands
fi
例子:加入没有/tmp/abc这个目录 就创建

现在运行一下上面这个脚本文件

语法二:if-then-else 语句
适用范围:两步判断,条件为真干什么,条件为假干什么
语法格式:
if [condition]
then
commands1
else
commands
fi
例子:判断当前用户是否为root

运行上述脚本文件

语法三:if-then-elif语句
适用范围:多于两个以上的判断结果
语法格式:
if [condition 1]
then
commands1
elif [condition 2]
then
commands2
...
else
commandsx
fi
例子:比较两个数的大小

运行上述脚本文件:

上述红框中表示传递的参数。
if的高级应用
1. 条件符号使用双圆括号,可以在条件中植入数学表达式

执行上面的脚本文件

注意:双小圆括号中的比较运算符,使用的是我们传统的比较运算符 > < >= <= == !=
2. 使用方括号可以在条件中使用通配符

运行上述脚本文件

本文深入探讨了Shell中的运算,包括数学比较、字符串比较、文件检查和逻辑运算。此外,还详细介绍了if语句的不同语法,如单if、if-then-else和if-then-elif结构,以及if语句的高级应用,如双圆括号中的数学表达式和通配符使用。
6027

被折叠的 条评论
为什么被折叠?



