返回

31、条件判断

发布时间:2023-11-06 18:10:16 309


1、条件判断

-b:判断文集爱你是否存在,并且是否为块设备文件,是块设备文件为真

-c:判断文件是否存在,并且是否为字符设备文件,是字符设备文件为真

-d:判断该文件是否存在,并且是否为目录,目录为真

-e:判断文件是否存在,存在为真

-f:判断文件是否存在,并且是否为文件,文件为真

-L:判断文件是否存在,并且为符号链接文件,符号链接文件为真

-p:判断文件是否存在,并且是否为管道文件,管道文件为真

-s:判断该文件是否存在,并且是否为空,不为空真

-S:判断文件是否存在,并且是否为套接字文件,套接字文件为真

1.1  方法一:

test  -e  test.txt       

echo $?     //0正确

1.2  方法二:

[ -e test.txt ]

echo $?     //0正确

1.3  方法三  :

[ -d  /root ]  && echo 'yes' || echo 'no'

[ -f  /root/test.txt ]  && echo 'yes' || echo 'no'//是否是文件

[ -w /root/test.txt ] && echo 'yes' || echo 'no'   //是否有写权限,所有者所属组其他人只有有一个有写权限,就会yes


[ -r /root/test.txt ] && echo 'yes' || echo 'no'   //是否有读权限,所有者所属组其他人只有有一个有读权限,就会yes

[ -x /root/test.txt ] && echo 'yes' || echo 'no'   //是否有执行权限,所有者所属组其他人只有有一个有执行权限,就会yes




2、两个文件相比较


2.1 文件一 -nt 文件二 :一比二新,为真


2.2 文件一 -ot 文件 二: 一比二旧,为真


2.3 文件一 -et 文件二 : 判断文件一与文件二的inode号是否一致,可以理解为两个文件是否为同一文件。这个判断等于判断硬链接是个很好的方法,


硬链接与原文件inode相同


例子:[ test -nt test.sh ] && echo 'yes' || echo 'no'




3、两个数值相比较


3.1 数值1 -eq 数值2:数值1与数值2相等,为真


3.1 数值1 -ne 数值2:数值1与数值2不相等,为真


3.1 数值1 -gt 数值2:数值1大于数值2,为真


3.1 数值1 -lt 数值2:数值1小于数值2,为真


3.1 数值1 -ge 数值2:数值1大于等于数值2,为真


3.1 数值1 -le 数值2:数值1小于等于数值2,为真


例子:[ 23 -gt 22 ] && echo 'yes' || echo 'no'



4、字符串比较

4.1 -z 字符串:字符串为空,为真

4.2 -n 字符串:字符串不为空,为真

4.3 字符串1 == 字符串2  :两个字符串相等,为真

4.4 字符串1 != 字符串2:两个字符串不相等,为真

例子:[ -z "$name" ] && echo 'yes' || echo 'no'     //$name中如果有值就yes否则就no


5、多重条件判断

5.1  条件一  -a  条件二:两个都为真,为真

5.2 条件一  -o  条件二:有一个为真,为真

5.3 !:非




特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
JS事件委托 2023-11-06 15:16:33