shell脚本中的测试及判断

一.测试
shell中测试结构有两种:test expression及[ expression ]([]与expression间各有空格)。较常用的为后一种,通常与if判断及while循环等结合使用。
1.整数测试

[ int1 -eq int2 ]:int1=int2则返回真,否则为假(同equal)
[ int1 -gt int 2 ]:int1>int2则返回真,否则为假 (同great than)
[ int1 -lt int 2 ]:int1<int2则为真,否则为假 (同less than)
[ int1 -ge int 2 ]:int1>=int2则为真,否则为假(同great equal)
[ int1 -le int 2 ]:int1<=int2则为真,否则为假(同less equal)
[ int1 -ne int 2 ]:int1!=int2则为真,否则为假(同not equal)

2.字符串测试

[ string1 = string2 ]:string1与string2相同时返回真,否则为假
[ string1 != string2 ]:string1与string2不相同时返回真,否则为假
[ string1 > string2 ]:string1排在string2之前时返回真,否则为假
[ string1 < string2 ]:string1排在string2之后时返回真,否则为假
[ -z string ]:string为空时返回真,否则为假
[ -z string ]:string为非空时返回真,否则为假

3.文件测试

[ -d file ]:文件存在且为目录时返回真,否则为假
[ -e file ]:文件或目录存在时返回真,否则为假
[ -f file ]:文件存在且为普通文件时返回真,否则为假
[ -x file ]:文件存在且为可执行文件时返回真,否则为假
[ -s file ]:文件存在且大小不为0时返回真,否则为假
[ file1 -nt file2 ]:文件1比文件2新时返回真,否则为假
[ file1 -ot file2 ]:文件1比文件2旧时返回真,否则为假

4.逻辑测试

[  ! expression ]:若expression为真,则返回假
[ expression1 -a expression2 ]:expression1与expression2同时为真,则返回真,否则为假
[ expression1 -o expression2 ]:expression1与expression2有一个为真,则返回真,否则为假

二.判断
1.if
if结构1,:

if expression ; then
	command
else 
	command
fi	

if多层判断结构:

if expression1 ;then
	command1
elif expression2 ;then
	command2
...
fi		

2.case
case主要用于多种可能情况的分支选择。结构为:

case VAR in
var1) command1 ;;
var2) command2 ;;
var3) command3 ;;
...
*)  command ;;
easc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值