Shell条件判断
Shell条件判断
基本语法
- test condition(condition之间要有空格)
- [ condition ] (condition前后要有空格)
常用判断条件
整数之间比较
- -eq 等于(equal)
- -ne 不等于(not equal)
- -lt 小于(less than)
- -le 小于等于(less equal)
- -gt 大于(greater than)
- -ge 大于等于(greater equal)
注:如果是字符串之间的比较 ,用等号"="判断相等;用"!="判断不等
按照文件权限进行判断
- -r 有读的权限(read)
- -w 有写的权限(write)
- -x 有执行的权限(execute)
按照文件类型进行判断
- -e 文件存在(existence)
- -f 文件存在并且是一个常规的文件(file)
- -d 文件存在并且是一个目录(directory)
test condition
注意:条件非空即为 true,[ content ]返回 true,[ ] 返回 false
# 条件之间没有空格,当成表达式,返回true
[root@zookeeper1 shell]# test a=hello
[root@zookeeper1 shell]# echo $?
0
# 条件之间有空格,进行判断,返回fasle
[root@zookeeper1 shell]# test a = hello
[root@zookeeper1 shell]# echo $?
1
关于$?的作用,如果不清楚可以参考文档:https://www.cnblogs.com/Y-wee/p/16183614.html
[ condition ]
# 判断1和1是否相等
[root@zookeeper1 shell]# [ 1 -eq 1 ]
[root@zookeeper1 shell]# echo $?
0
# 判断1和2是否相等
[root@zookeeper1 shell]# [ 1 -eq 2 ]
[root@zookeeper1 shell]# echo $?
1
# 判断当前路径下param.sh脚本是否具有读的权限(不加路径默认为当前路径)
[root@zookeeper1 shell]# [ -r param.sh ]
[root@zookeeper1 shell]# echo $?
0
# 判断当前路径下param.sh脚本是否存在(不加路径默认为当前路径)
[root@zookeeper1 shell]# [ -e param.sh ]
[root@zookeeper1 shell]# echo $?
0
多条件判断
&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一 条命令执行失败后,才执行下一条命令(相当于Java中的三目运算符)
# [ hello ]返回true,执行echo a,||上一条命令执行成功,不执行echo b
[root@zookeeper1 shell]# [ hello ] && echo a || echo b
a
# [ ]返回false,不执行echo a,||上一条命令执行失败,执行echo b
[root@zookeeper1 shell]# [ ] && echo a || echo b
b
记得快乐
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY