查看: 896|回复: 0
收起左侧

[教程经验] Shell脚本语法——条件测试

Lihoon 2020-8-5 23:55:59 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
本帖最后由 Lihoon 于 2020-8-8 17:12 编辑

1        条件判别表达式:真——0,假——1

2        整数判别符:-eq——等于,-gt——大于,-lt——小于,-ne——不等于,-le——小于等于,-ge——大于等于

3        条件测试命令:test或[ ]  测试条件

lihoon@lihoon:~$ val=97                                                 #定义变量val=97
lihoon@lihoon:~$ test $val -gt 63                                #用test命令比较变量是否>63
lihoon@lihoon:~$ echo $?                                              #查询上一次命令执行结果
0                                        #结果为真

lihoon@lihoon:~$ [ $val -gt 100 ]                                 #用[ ]命令比较变量是否>63(注意空格)
lihoon@lihoon:~$ echo $?
1                                        #结果为假

4        测试是否存在名称为temp的目录:[ -d temp ]

lihoon@lihoon:~/code/Linux_shell$ ls
command.sh  sample.sh      Shell笔记2.md  temp.sh
note.txt    shell笔记1.md  temp           temp.txt
lihoon@lihoon:~/code/Linux_shell$ [ -d temp ]
lihoon@lihoon:~/code/Linux_shell$ echo $?
0

5        测试是否存在名称为temp.txt的文件:[ -f temp.txt ]

lihoon@lihoon:~/code/Linux_shell$ ls
command.sh  sample.sh      Shell笔记2.md  temp.sh
note.txt    shell笔记1.md  temp           temp.txt

lihoon@lihoon:~/code/Linux_shell$ [ -f temp.txt ]
lihoon@lihoon:~/code/Linux_shell$ echo $?
0

other: -p——管道,-l——软连接,-c——字符设备,-b——块设备,-s——socket

6        测试字符串的长度是否为0:

​                                [ -z string ]——长度为0则为真                                

​                                [ -n string ]——长度非0则为真

lihoon@lihoon:~/code/Linux_shell$ var='hello'
lihoon@lihoon:~/code/Linux_shell$ [ -z $var ]
lihoon@lihoon:~/code/Linux_shell$ echo $?
1

lihoon@lihoon:~/code/Linux_shell$ [ -n $var ]
lihoon@lihoon:~/code/Linux_shell$ echo $?
0

7        比较两个字符串是否为真:[ string1 = string2 ]

lihoon@lihoon:~/code/Linux_shell$ var='hello'
lihoon@lihoon:~/code/Linux_shell$ [ $var = 'hello' ]
lihoon@lihoon:~/code/Linux_shell$ echo $?
0

lihoon@lihoon:~/code/Linux_shell$ [ $var != 'hello' ]
lihoon@lihoon:~/code/Linux_shell$ echo $?
1

8        逻辑与、或、非:-a、-o、!

lihoon@lihoon:~/code/Linux_shell$ [ -d temppp -a "$var" = '10' ]                #判断temppp目录是否存在并且变量值等于10
lihoon@lihoon:~/code/Linux_shell$ echo $?
1

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部