论shell之条件语句-if语句、case语句

目录

一:条件测试

1.文件测试

2.常见的测试操作符

 3.整数值比较

​4.字符串比较

​5. 逻辑测试

二:if语句

1.单分支结构

 2.单分支结构实例

3.双分支结构 

  4.双分支结构实例

 5.多分支结构

 6.多分支机构实例

 7.嵌套if语句实例

 三:case语句

1.case多分支结构

 2.case多分支结构实例

总结:


一:条件测试

1.文件测试

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

格式1:test 条件表达式
格式2:[ 条件表达式 ]

2.常见的测试操作符

操作符 描述
-d 判断是否为目录
-f 判断是否为文件
-e 判断是否为目录或文件
-r 判断是否有读权限
-w 判断是否有写权限
-x 判断是否有执行权限
-L 判断是否为链接文件
-b 判断是否为设备文件
-c 判断是否为字符设备
-s 判断文件大小是否为空

注:中括号内两端必须要有空格 

 3.整数值比较

[ 整数1 操作符 整数2 ]

常用的测试操作符

操作符 描述
-eq(equal) 等于
-ne(not equal) 不等于
-lt (lesser than) 小于
-le (lesser or equal) 小于或等于
-gt (greater than) 大于
-ge (greater or equal) 大于或等于

注:英文操作符是专门用于整数比较的

 4.字符串比较

格式1:[ 字符串1 = 字符串2 ]
格式2:[ -z 字符串 ]

=:字符串内容相同
!=:字符串内容不同,!取反
-z:字符串内容为空 

注:符号操作符可用于整数比较和字符串比较

 5. 逻辑测试

格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...
格式2:命令1 操作符 命令2 ...

常用的测试操作符:
-a或&&:逻辑与,且的意思
-o或||:逻辑或,或者的意思
!:逻辑非,否的意思 

二:if语句

1.单分支结构

if 条件语句
 then 命令
fi 

 2.单分支结构实例

问题一:9大于5,输出ok

问题二:判断/opt目录下有没有abc.sh文件,如果没有就创建

 

3.双分支结构 

if 条件
 then 命令1
 else 命令2
fi 

  4.双分支结构实例

输入一个数字,判断奇偶数

 5.多分支结构

if 条件1
 then 命令1
 elif 条件2
   then 命令2
 else 命令3
fi   

 6.多分支机构实例

 问题:将全班的分数划分等级。A:90-100、B:80-89、C:70-79、D:60-69、60以下显示不及格

 7.嵌套if语句实例

整数比较,如果输入字符串,显示输入错误

 

 三:case语句

1.case多分支结构

case语句格式:
case 变量名称 in
模式1)
	命令1
;;             //表示命令结束
模式2)
	命令2
;;
*)		//默认语句,
        命令3    //可不写
esac            //结尾反着写

 2.case多分支结构实例

按等级划分成绩A:85-100、B:70-84、C:60-69,其他的分数则叫家长

总结:

1.在shell脚本中我们常用[]去进行判断,而不是用test
2.在判断中进行数值比较需要使用eq、gt等操作符,而不能使用><
3.在实际生产中if单支语句用的很少,常用的为if双分支和多分支较多
4.case语句常用于服务的启动 

猜你喜欢

转载自blog.csdn.net/A1100886/article/details/130388266