作者:有些浮夸 | 来源:互联网 | 2023-01-23 19:09
条件测试
1、文件测试
2、整数测试
3、字符串与逻辑测试
if语句:
if单分支语句
if双分支语句
if多分支语句
if嵌套语句
test命令:
测试特定的表达式 是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值。
格式1:test 条件表达式
格式2:[ 条件表达式 ] //注意有空格
文件测试
文件测试是指的是根据给定的路径名称,判断对应的是文件还是目录,或者判断文件是否可读、可写、可执行等。
常用的测试操作符:
-d:测试是否为目录(Directory)
-e:测试目录或文件是否存在(Exist)
-f:测试是否为文件(File)
-r:测试当前用户是否有权限读取(Read)
-w:测试当前用户是否有权限写入(Write)
-x:测试当前用户是否有权限执行(eXcute)
实际操作:
格式一:
test -d /etc/sysconfig (测试/etc里的sysconfig目录是否存在)
echo $?(输出值为0,则条件成立)
![Shell脚本之条件语句](https://img1.php1.cn/3cd4a/24de0/978/19bb69aef1333db9.jpeg)
格式二:
[ -d /etc/sysconfig ]
echo $?(输出值为1,则条件不成立)
![Shell脚本之条件语句](https://img1.php1.cn/3cd4a/24de0/978/6ef29d1b50c3103b.jpeg)
整数值比较:
格式:[ 整数1 操作符 整数2 ]
常用的测试操作符:
-eq:等于(Equal)
-ne:不等于(Not Equal)
-gt:大于(Greater Than)
-lt:小于(Lesser Than)
-le:小于或等于(Lesser or Equal)
-ge:大于或等于(Greater or Equal)
字符串比较
格式1:[ 字符串1 = 字符串2 ]
[ 字符串1 ! = 字符串2 ]
格式2:[ -z 字符串]
常用的测试i操作符:
=:字符串内容相同
!=:字符串内容不同,!表示相反的意思
-z:字符串内容为空
逻辑测试
格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...
格式2:命令1 操作符 命令2 ...
常用操作选项
-a或&&:逻辑与,“而且”的意思
-o或||:逻辑或,“或者”的意思
!:逻辑否,表示“不”的意思
if语句:
单分支结构:
if 条件测试操作
then
命令序列
fi
![Shell脚本之条件语句](https://img1.php1.cn/3cd4a/24de0/978/64bc3ab7e7042906.jpeg)
![Shell脚本之条件语句](https://img1.php1.cn/3cd4a/24de0/978/e3b3e6f35b90621b.jpeg)
双分支结构:
if 条件测试操作
then
命令序列1
else
命令序列2
fi
![Shell脚本之条件语句](https://img1.php1.cn/3cd4a/24de0/978/3668ab35792be7bc.jpeg)
![Shell脚本之条件语句](https://img1.php1.cn/3cd4a/24de0/978/5588df88c354fb75.jpeg)
多分支结构:
if 条件测试操作
then
命令序列1
elif 条件性测试操作2
then
命令序列2
else
命令序列3
fi
![Shell脚本之条件语句](https://img1.php1.cn/3cd4a/24de0/978/8b0bf199cc8d2346.jpeg)
![Shell脚本之条件语句](https://img1.php1.cn/3cd4a/24de0/978/755fd13fb1fd3ac3.jpeg)
if嵌套语句:
实验目的:进行跑步比赛,10秒内进入决赛,输入性别后,分别提示进入男子组还是女子组,使用多重判断,嵌套if实现
![Shell脚本之条件语句](https://img1.php1.cn/3cd4a/24de0/978/1fa08fec3a6242b0.jpeg)
![Shell脚本之条件语句](https://img1.php1.cn/3cd4a/24de0/978/54ac6be5acde6dc2.jpeg)