shell编程-条件判断

1.按照文件类型进行判断

判断文件是否存在的两种方式:

1.1 使用test进行判断

###判断文件/root/score.txt是否存在
[root@wenhaijin ~]#  test -e /root/score.txt
###打印上一条语句的输出结果,0表示正确执行,否则执行不正确
[root@wenhaijin ~]# echo $?
0
[root@wenhaijin ~]# 

1.2 使用”中括号”进行判断(中括号里面有空格)

###该语句等价于上面的test语句(注意中括号里面有空格)
[root@wenhaijin ~]# [ -e /root/score.txt ]

这两种判断语句的选项如下:

225729_JBPc_2988360.png

判断目录/root是否存在,存在打印yes,否则打印no
[root@wenhaijin ~]# test -d /root && echo "yes" || echo "no"
yes

###中括号里面是有空格的
[root@wenhaijin ~]#  [ -f /root/score.txt ] && echo "yes" || echo "no"
yes
[root@wenhaijin ~]# 

2. 按照文件权限进行判断

232058_IOcf_2988360.png

###判断文件是否具有读、写、可执行权限
[root@wenhaijin ~]# [ -r /root/score.txt ]&& echo "yes" || echo "no"
yes
[root@wenhaijin ~]# [ -w /root/score.txt ]&& echo "yes" || echo "no"
yes
[root@wenhaijin ~]# [ -x /root/score.txt ]&& echo "yes" || echo "no"
no
[root@wenhaijin ~]# 

3. 两个文件之间的比较

233023_4jT6_2988360.png

[root@wenhaijin ~]# ls
91yunserverspeeder         score.txt             tcp_wmem~
91yunserverspeeder.tar.gz  serverspeeder-all.sh  x1.sh
###判断文件/root/score.txt是否比文件/root/tcp_wmem~新
[root@wenhaijin ~]# [ /root/score.txt -nt /root/tcp_wmem~ ] && echo "yes" || echo "no"
yes
###判断文件/root/score.txt是否比文件/root/tcp_wmem~旧
[root@wenhaijin ~]# [ /root/score.txt -ot /root/tcp_wmem~ ] && echo "yes" || echo "no"
no
###判断两个文件是不是采用硬链接形式创建的
[root@wenhaijin ~]# [ /root/score.txt -ef /root/tcp_wmem~ ] && echo "yes" || echo "no"
no

###创建硬链接
[root@wenhaijin ~]# ln /root/score.txt  /tmp/sco.txt
###查看i节点
[root@wenhaijin ~]# ls -i score.txt 
1058319 score.txt
###查看i节点
[root@wenhaijin ~]# ls -i /tmp/sco.txt 
1058319 /tmp/sco.txt
###判断两个文件是不是采用硬链接形式创建的
[root@wenhaijin ~]# [ /root/score.txt -ef /tmp/sco.txt ] && echo "yes" || echo "no"
yes
[root@wenhaijin ~]# 

4. 两个整数之间的比较

234117_scei_2988360.png

[root@wenhaijin ~]# [ 23 -gt 22 ] && echo yes || echo no
yes
[root@wenhaijin ~]# [ 23 -lt 22 ] && echo yes || echo no
no
[root@wenhaijin ~]# 

5.字符串的判断

234403_JdyH_2988360.png

[root@wenhaijin ~]# name=wenhaijin
###字符串name为空返回yes,不为空返回no
[root@wenhaijin ~]# [ -z "$name" ] && echo yes || echo no
no
[root@wenhaijin ~]# [ -z "$nameaaa" ] && echo yes || echo no
yes
[root@wenhaijin ~]# 

[root@wenhaijin ~]# aa=abc
[root@wenhaijin ~]# bb=abc
[root@wenhaijin ~]# [ "$aa" == "$bb" ] && echo yes || echo no
yes

6.多重条件判断

235254_Wly2_2988360.png

[root@wenhaijin ~]# aa=11
###aa存在并且aa大于23,则打印yes,否则打印no
[root@wenhaijin ~]# [ -n "$aa" -a "$aa" -gt 23 ] && echo yes || echo no
no

[root@wenhaijin ~]# aa=25
[root@wenhaijin ~]# [ -n "$aa" -a "$aa" -gt 23 ] && echo yes || echo no
yes

 

转载于:https://my.oschina.net/u/2988360/blog/891036

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值