Linux里的几类比较主要和if使用

if语句的执行规则和这几类比较关系密切,顺带提下,本人在此有时搞混淆,以此为记。

bash shell中的if语句,如果命令的退出状态是0,将执行then后面的所有命令,如果命令的退出状态是0以外的其他值,那么then后面的命令将不会执行。

bash shell 中的test语句,如果test命令中列出的条件评估值为TRUE,test命令以0退出状态代码退出。有以下两种形式,if和test结合说明。注:condition左右两侧有一个空格。

if test condition
then  
    commands
fi
或者

if [ condition ]
then
     commands
fi
test命令有以下3类评估条件:

1.数值比较

2.字符串比较

3.文件比较

数值比较

可以是变量也可以是数值也可以互相比较

比较描述比较描述
n1 -eq n2等于n1 -lt n2小于
n1 -ge n2大于等于n1 -le n2小于等于
n1 -gt n2大于n1 -ne n2不等于

字符串比较

字符串比较参数列表
比较描述比较描述
str1=str2等于str1>str2大于
str1!=str2不等于-n str检查长度是否大于0
str1<str2小于-z str检查长度是否为0

字符串比较会遇到两个问题:

1.大于小于号一定要转义,否则会当作重定向号。

2.大于和小于顺序与在sort命令中顺序不同,在test命令中,大写字母小于小写字母,而sort正好相反。

3.字符串比较变量尽量加双引号。

文件比较

比较描述
-d file检查文件是否是存在并且是一个目录
-e file检查文件是否存在
-f  file检查file是否存在并且是一个文件
-s file检查file是否存在并且不为空
-w file检查file是否存在并且可写
-x file检查file是否存在并且可执行
-O file检查file是否存在并且被当前用户拥有
-G file检查file是否存在并且默认组为当前用户组
-r file检查文件是否存在并且可读
file1 -ot file2检查file1是否比file2旧
file1 -nt file2检查file1是否比file2新

 
 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值