• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Y-wee
博客园    首页    新随笔    联系   管理     

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
记得快乐
posted @ 2022-04-23 22:21  Y-wee  阅读(79)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3