Shell编程之条件语句

条件测试

Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0时表示成功,否则(非0值)表示失败或异常。
使用专门的测试工具—test命令,可以对条件进行测试,并根据返回值来判断条件是否成立(返回值为0表示条件成立)
使用test测试命令时,包括以下两种形式。

test  【测试选项】 条件表达式

或者

[ 【测试选项】 条件表达式 ]

这两种方式的作用完全相同,但通常后一种形式更为常用,也更贴近编程习惯。需要注意的是,方括号 “[ ]”与条件表达式之间需要至少需要一个空格进行分隔。
根据需要测试的条件类别不同,条件表达式也不同。比较常用的条件操作包括文件测试、整数值比较、字符串比较,以及针对多个条件的逻辑测试。

1.文件测试

  • -d:测试是否为目录
  • -e:测试目录或文件是否存在
  • -f:是否为文件
  • -r:测试当前用户是否有权限读取
  • -w:测试当前用户是否有权限写入
  • -x:测试是否设置有可执行权限
  • -nt:判断文件A是否比文件B新。
  • -ot:判断文件A是否比文件B旧。
  • -ef:判断两个文件是否为同一个文件,用来判断两个文件是否指向同一个inode。

2.整数值比较

  • -eq:第一个数等于第二个数
  • -ne:第一个数不等于第二个数
  • -gt:第一个数大于第二个数
  • -lt:第一个数小于第二个数
  • -le:第一个数小于或等于第二个数
  • -ge:第一个数大于或等于第二个数

3.字符串比较

  • ==:第一个字符串与第二个字符串相同
  • !=:第一个字符串与第二个字符串不相同
  • -z:检查字符串是否为空(Zero),对于未定义或赋予空值的变量将视为空串

4.逻辑测试

逻辑测试指的是判断两个或多个条件之间的依赖关系。当系统任务取决于多个不同的条件时,判断是根据这些条件同时成立还是只要有其中一个成立等情况,需要有一个测试的过程。常用的逻辑测试操作如下👇,使用时放在不同的测试语句或命令之间。

  • &&:逻辑与,表示“并且”,只有前后两个条件都成立时,整个测试命令的返回值才为0(结果成立)。使用test命令测试时,可改用test -a
  • ||:逻辑或,表示“或者”,只要前后两个条件中有一个成立,整个测试命令的返回值及为0(结果成立)。使用test命令测试时,可改用test -o
  • !:逻辑否,表示“不”,只有当指定的条件不成立时,整个测试命令的返回值才为0(结果成立)

if语句

1.单分支的if语句

if 条件测试操作   //如果条件成立
then            //则
	命令序列
fi              //结束判断

2.双分支语句

	if 条件测试      //如果条件成立
	then
		命令序列1
	else            //否则
		命令序列2
	fi              //结束判断

3.多分支语句

if 条件测试1      //如果条件成立
then             //则
命令序列1
elif 条件测试2    //或如果
then          	 //则
命令序列2
else             //否则
命令序列3
fi               //结束判断
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值