Shell编程中条件语句

目录

一、条件测试

1、test命令

2、文件测试

 3、整数值比较

4、字符串比较

5、逻辑测试

二、if语句的结构

1、单分支的if语句

 2、双分支的if语句

3、多分支的if语句


一、条件测试

1、test命令

测试表达式是否成立,若不成立返回0,否则返回其他数值

格式:

test 条件表达式
或[ 条件表达式 ]

2、文件测试

常用的测试操作符

-d测试是否为目录(Directory)
-e测试目录或文件是否存在(Exist)
-f测试是否为文件(File)
-r测试当前用户是否有权限读取(Read)
-w测试当前用户是否有权限写入(Write)
-x测试当前用户是否有权限执行(eXcute)

 

 3、整数值比较

 [ 整数1 操作数 整数2 ]      

常用的测试操作符

-eq等于(Equal)
-ne不等于(Not Equal)
-lt小于(Leser Than)
-gt大于(Greater Than)
-le小于或等于(Lesser or Equal)
-ge大于或等于(Greater or Equal)

4、字符串比较

格式

[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ] 

或 [ -z 字符串 ]

常用的测试操作符

=字符串内容相同
!=字符串内容不同,!号表示相反的意思
-z字符串内容为空

5、逻辑测试

格式

[ 表达式1 ] 操作符 [ 表达式2 ]
或 命令1 操作符 命令2
-a或&&逻辑与,而且的意思
-o或▕▕逻辑或,或者的意思
逻辑否

二、if语句的结构

在shell脚本应用中,if语句是最为常用的一种流程控制方式,用来根据特定的条件测试结果,分别执行不同的操作(如果...那么...)。根据不同的复杂程度,if语句的选择结构可以分为三种基本类型,适用于不同的应用场合。

1、单分支的if语句

格式:
if [ 条件判断式 ]; than
	当条件判断成立时,执行一条或多条命令
fi 					

单分支if语句的执行流程:

首先判断条件测试操作的结果,如果返回值为0,表示条件成立,则执行then后面的命令序列,一直遇到fi结束判断为止,继续执行其他脚本代码;如果返回值不为0,则忽略then后面的命令序列,直接跳至fi行以后执行其他脚本代码

 2、双分支的if语句

对于双分支的选择结构,要求针对“条件成立”“条件不成立”两种情况分别执行不同的操作

if [ 条件判断式 ]; then
	当条件判断成立时,可以执行一条或多条命令
else	
	当条件判断不成立时,可以执行一条或多条命令
fi 		

双分支if语句的执行流程:

首先判断条件测试操作的结果,如果条件成立,则执行then后面的命令序列1,忽略else及后面的命令序列2,直到遇见fi结束判断;如果条件不成立,则忽略then及后面的命令序列1,直接跳至else后面的命令序列2并执行,直到遇见fi结束判断

 示例:判断用户输入是否为yes


 

3、多分支的if语句

 由于if语句可以根据测试结果的成立、不成立分别执行操作,所以能够嵌套使用,进行多次判断

if [ 条件判断式 ]; then
	当条件判断成立时,可以执行一条或多条命令
elif [ 条件判断式二 ]; then
	当条件判断成立时,可以执行一条或多条命令
else	
	当上面的条件判断都不成立时,可以执行一条或多条命令
fi 		

多分支if语句的执行流程:

首先判断条件测试操作1的结果,如果条件1成立,则执行命令序列1,然后跳至fi结束判断;如果条件1不成立,则继续判断条件测试操作2的结果,如果条件2成立,则执行命令序列2,然后跳至fi结束判断....如果所有条件都不满足,则执行else后面的命令序列n,直到遇见fi结束判断

 示例:根据输入考试分数不同区分优秀、合格、不合格

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值