shell 3. 条件测试和判断语句

一、条件测试

$? 等于0 表示前一个命令测试成功,等于1表示测试失败

字符串测试

# 第一种写法
test expression

# 第二种写法
[ expression ]

数据

1. 判断字符串是否不为空,0表示不为空,1表示为空。

2. 判断字符串是否为空,0表示为空,1表示不为空。

3. 判断两个字符串是否相等,0表示相等,1表示不相等。

4. 判断两个字符串是否不相等,0表示不相等,1表示相等。


整数测试

# 第一种写法
test number1 option number2

# 第二种写法
[ number1 option number2 ]

optiion
运算符说明
-eq等于
-ne不相等
-gt大于
-ge大于等于
lt小于
le小于等于
实例


文件测试

# 第一种写法
test option file


# 第二种写法
[ option file ]

option
操作符说明
-a file文件是否存在,如果存在,如果是测试成功
-b file文件是否存在,且为块文件,如果是测试成功
-c file文件是否存在,且为字符文件,如果是测试成功
-d file文件是否存在,且为目录,如果是测试成功
-s file文件是否为非空文件,如果是测试成功
-f file文件是否存在,且为常规文件,如果是测试成功
-w file文件是否存在,且为可写文件,如果是测试成功
-r file文件是否存在,且为可读文件,如果是测试成功
-x file文件是否存在,且为可执行文件,如果是测试成功
实例


连接多个条件测试语句的符号

操作符说明
!not
-aand
-oor
实例


二、判断语句

if语句

if expression1 
then
	code...
elif expression2
then
	code...
elif expression3
then
	code...
else
	code...
fi

可以使用exit语句来退出

实例
#! /bin/zsh

echo "Please enter a number"

read num

if [ "${num}" -eq 10 ];then
	echo "输入的数字等于10"
elif [ "${num}" -gt 10 ];then
	echo "输入的数字大于10"
elif [ "${num}" -lt 10 ];then
	echo "输入的数字小于10"
else
	echo "输入的不是数字"
fi

case语句

case variable in 
	value1)
		code;;
	value2)
		code;;
esac

实例
echo "输入一个编码,返回分类"

read score

case "${score}" in
	"0101")
		echo "外墙砖";;
	"0102")
		echo "仿古砖";;
	"0103")
		echo "抛光砖";;
esac
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JunChen681

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值