Shell脚本编程的文件语句(test、if、case)

12 篇文章 1 订阅

目录

一、条件测试

1.1 测试命令---test

1.2  文件测试

1.3 整数值比较

1.4 字符串比较

1.5 逻辑测试

二、if语句

2.1 单分支结构

2.2 双分支if语句

2.3 多分支if语句

三、case分支语句

3.1 case语句的结构


一、条件测试

1.1 测试命令---test

测试特定的表达式是否成立,当条件成立,测试语句的返回值为0,否则为其它数值

格式:

test 条件表达式

或 [ 条件表达式 ]  (条件表达式的两边都需要有空格,且此方法更为常用)

1.2  文件测试

根据给的路径名称,判断对应是文件=还是目录,或者判断是否有相应的权限等。

格式:[ 操作符 文件或目录 ]


 

常用的操作符

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

 

1.3 整数值比较

用于比较两个整数值得大小

格式:[ 整数变量1 操作符 整数变量2 ]
常用的操作符作用符号
-eq等于==
-ne不等于!=
-gt大于>
-lt小于<
-le小于等于
-ge大于等于

 

 

 

1.4 字符串比较

  • 字符串可用来查看用户输入、系统环境等是否满足条件
  • 交互式操作的shell脚本中,用来判断用户输入的位置参数是否符合要求
常用选项作用
=第一个字符串与第二个字符串相同
!=第一个字符与第二个字符串不相同,“!”表示取反
-z字符串内容为空
格式1:
[  字符串1  =  字符串2 ] 或 [  字符串1  ==  字符串2 ] 
[  字符串1  !=  字符串2 ]

格式2:
[  -z  字符串 ]		#检查字符串是否为空(Zero),对于未定义或赋予空值的变量将视为空串

 

1.5 逻辑测试

用于判断两个人或多个条件之间的依赖关系

常用的操作符:
-a或&& :逻辑与,“而且”的意思,前后条件需都成立
-o或|| :逻辑或,“或者”的意思,只需前后条件中一个成立
! :逻辑否,“不”的意思

格式1:[  表达式1  ]  操作符  [  表达式2  ]  
格式2:命令1  操作符  命令2
示例:
a=5
[ $a -ne 1 ] && [ $a != 2 ]	等同于	[ $a -ne 1 -a $a != 2 ]

#、&&、||操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错
[[ $a -ne 1 && $a != 2 ]]
[ 2 -lt 3 ] && echo true || echo false
[ 2 -ge 3 ] && echo true || echo false

补充: 

 三元运算符 条件表达式?值1::值2

条件表达式 && 命令1 || 命令2

二、if语句

2.1 单分支结构

 

只有在条件成立的时候才会执行相应的操作,否则不执行。

格式:
if 条件测试操作
then
命令序列
fi

示例 :  当磁盘已用% 超过80%的时候,提示 “过载!”,没超过80%则 显示“正常”

 

 

2.2 双分支if语句

针对两种情况执行不同的操作

 

格式:
if 条件测试操作
then
命令序列 1
else
命令序列 2
fi

2.3 多分支if语句

 

针对if的特性,嵌套使用,进行多次判断。

格式:
if 条件测试操作 1
then
命令序列 1
elif 条件测试操作 2
then
命令序列 2
[else]
[命令序列 3]
fi

示例:根据考试的分数,决定你抄写的遍数。

三、case分支语句

3.1 case语句的结构

用于变量存在多重取值,对每种取值执行不同的命令。

与if相似

case 变量值 in
模式 1)
命令序列 1
;;
模式 2)
命令序列 2
;;
* )
默认命令序列
esac

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值