bash学习之条件语句(三)

在具体说明条件语句之前,先引入一下测试语句。顾名思义,测试语句就相当于布尔类型,可以用来条件语句的判断。

1.测试语句有两种,第一种是test express 的测试语句,另一种是[ express ] 的测试语句,这两种语句都是返回的一个布尔类型的值。下面说明这两个语句的具体用法:
数值比较:

num1 -eq num2  :      #num1=num2
num1 -gt num2   :    #num1>num2
num1 -ge num2  :    #num1>=num2
num1 -lt  num2   :  #num1<num2
num1 -le  num2  :  #num1<=num2

文件:

-e : #存在为真
-f :  #是否是文件
-d:  #是否是文件夹

当然,文件的可选参数并非只有这些,有兴趣的可以自己去查阅资料
字符串:

=#判断相等
!=  :  #不等
-z  :  #是否为空,相当于empty方法
-n  : #是否不为空

2.if选择语句
语法结构

if [ express1 ]
then
	command
elif [ express2 ]
then 
	command
else
	command
fi

上面的即bash中的if语句,当然elif 和 else可以没有,程序将会从上向下进行判断,当进入一个判断之后,后面的就不会在判断了
程序1:

#!/bin/bash
#if语句用法
var1=12
var2=10
if [ $var1 -lt $var2 ]
then
	echo $var1 \< $var2
elif [ $var1 -eq $var2 ]
	then
	echo $var1 = $var2
else
	echo $var1 \> $var2
fi

运行结果
在这里插入图片描述
程序说明:
由于bash里面< , > 有着特殊的含义,因此用\进行转义

3.case选择语句
语法结构

case express in
	value1)command1;;
	value2)command2;;
	*)commandn;;
esac

最后的 *) 是一个默认的选择结构,全部匹配
程序2:

#!/bin/bash
#case语句用法
case $LOGNAME in
	"root")echo 用户为超级用户;;
	"curve")echo 用户为管理员;;
	*)echo 未知用户;;
esac
echo $LOGNAME

运行结果:
在这里插入图片描述
case的作用相当于c语言中的switch。只不过风格不一样 ;; 用来作为一个语句的退出,另外结尾有一个esac (case的反写)作为判断case的结尾

4.select条件语句
select语句和case一样是一个多条件选择语句,不过,select会在in后面添加一些可选项,这些可选项会在终端显现出来,选择其中一个(填数字),如下:
程序3:

#!/bin/bash
#select语句用法
select m in 鸡 鸭 鱼
do 
break
done
echo 你喜欢的是$m

运行结果:
在这里插入图片描述

5.逻辑组合
当需要一些逻辑表达是组合的时候可以和高级语法的逻辑组和符运用
高级语法一样用 && || !
当然,bash也有着自己风格的组合表达方式如下
-a 相当与&&
-o 相当与||
小结:bash的选择结构和其他语法的类似,之后过有着自己的风格,并且每个语句最后都要这个语句反写作为结束。bash的逻辑判断除了能用高级语法中的方法外,还有这自己风格的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值