Shell脚本中条件判断语句的语法结构和用法

  

这篇文章为大家带来有关Shell脚本中条件判断语句的语法结构和用法详细介绍。大部分命令和知识点都是大家经常用到的,为此分享给大家做个参考。一起跟随小编过来看看吧。

一条件判断语法结构

思考:何为真(true) ?何为假(假)?

# # 1。条件判断语法格式

    <李>格式1:测试条件表达式 <李>格式2:,(,条件表达式) <李>格式3:,[[,条件表达式]],支持正则,李

特别说明:

 <代码> 1)[,亲,亲我两边都有空格,不空打死你呦,]:小鬼:
  
  2)[[,亲,亲我两边都有空格,不空打死你呦,]]:小鬼:
  
  3),更多判断,“男人测试“去查看,很多的参数都用来进行条件判断 

2。条件判断相关参数

1)判断文件类型

判断参数含义- e判断文件是否存在(任何类型文件)- f判断文件是否存在并且是一个普通文件- d判断文件是否存在并且是一个目录- l判断文件是否存在并且是一个软连接文件- b判断文件是否存在并且是一个块设备文件- s判断文件是否存在并且是一个套接字文件- c判断文件是否存在并且是一个字符设备文件- p判断文件是否存在并且是一个命名管道文件- s判断文件是否存在并且是一个非空文件(有内容)

举例说明:

 <代码类=" language-powershell ">测试- e文件,,,,,,,,,,只要文件存在条件为真
  [- d/shell01/dir1],,,,,,判断目录是否存在,存在条件为真
  [ ! - d/shell01 dir1),,,判断目录是否存在,不存在条件为真
  [[- f/shell01/1。sh]],,,判断文件是否存在,并且是一个普通的文件 

2)判断文件权限

判断参数含义- r当前用户对其是否可读- w当前用户对其是否可写- x当前用户对其是否可执行- u是否有suid,高级权限冒险位- g是否sgid,高级权限强制位- k是否有t位高级权限粘滞位

3)判断文件新旧

说明:这里的新旧指的是文件的修改时间。

判断参数含- nt,义file1 file2比较file1是否比file2新file1 ot, file2比较file1是否比file2旧file1 ef, file2比较是否为同一个文件,或者用于判断硬连接,是否指向同一个inode

4)判断整数

判断参数含义eq相等- ne不等gt大于lt小于通用电气大于等于勒小于等于

5)判断字符串

判断参数含义- z判断是否为空字符串,字符串长度为0则成立- n判断是否为非空字符串,字符串长度不为0则成立string1=string2相等判断字符串是否相等string1 !=string2相等判断字符串是否相不等

6)多重条件判断

判断符号含义举例- a和,和逻辑与[1情商1——1 - ne 0),,(1情商),,[1 - ne 0] - o和| |逻辑或[1情商1 - o - ne 1]

特别说明:

,,,前面的表达式为真,才会执行后面的代码

| |,前面的表达式为假,才会执行后面的代码

,,,,,只用于分割命令或表达式

①举例说明
    <李>数值比较李
 <代码类=" language-powershell "> [root@server ~] # ((id - u)情商0美元),,回声“用户admin"
  [root@server ~]美元($ (id - u) - ne 0),,回声“用户不是admin"
  [root@server ~]美元($ (id - u)情商0),,回声“用户admin"| |回声“用户不是admin"
  
  (root@server ~) # uid=' id - u '
  (root@server ~) #测试uid eq 0美元,,回应这是管理
  这是管理
  (root@server ~) # $ (id - u) - ne 0], | |呼应这是管理
  这是管理
  (root@server ~) # $ (id - u)情商0],,,回应这是管理| |呼应这不是管理
  这是管理
  # su - stu1 root@server ~
  [stu1@server ~]美元($ (id - u)情商0),,,回应这是管理| |呼应这不是管理
  这不是管理 
    <李>类C风格的数值比较李
 <代码类=" language-powershell ">注意:在(())中,=表示赋值;==表示判断
  (root@server ~) # ((1==2)); echo $ ?
  (root@server ~) # ((1 & lt; 2)); echo $ ?
  (root@server ~) #((2祝辞=1));echo $ ?
  (root@server ~) # ((2 !=1)); echo $ ?
  [root@server ~] # ((' id - u '==0)); echo $ ?
  
  (root@server ~) #((=123));回声一美元
  root@server ~ #复原
  (root@server ~) # ((==123)); echo $ ? 
    <李>字符串比较李
 <代码类=" language-powershell ">注意:双引号引起来,看作一个整体;=和==在[字符串]比较中都表示判断
  (root@server ~) #=& # 39;你好& # 39;;b=世界
  (root@server ~) # (a=b美元);echo $ ?
  【root@server ~】#【“a"美元;=癰"美元;];echo $ ?
  【root@server ~】#【“a"美元;!=癰"美元;];echo $ ?
  【root@server ~】#【“a"美元;!==癰"美元;];echo $ ?,,,,错误
  【root@server ~】#【“a"美元;==癰"美元;];echo $ ?
  (root@server ~) #测试“a"美元;!=癰"美元;echo $ ?
  
  测试,表达式
  (表达式)
  [[表达式]]
  
  思考:[]和[[]]有什么区别吗?
  
  (root@server ~) #=(root@server ~) #测试- z美元;echo $ ?
  (root@server ~) #=你好
  (root@server ~) #测试- z美元;echo $ ?
  (root@server ~) #测试- n美元;echo $ ?
  (root@server ~) #测试- n“a"美元;;echo $ ?
  
  # (& # 39;& # 39;=$];echo $ ?
  bash(:::一元运算符预期
  2
  # [[& # 39;& # 39;=$]];echo $ ?
  0
  
  (root@server ~) # 1情商0—1 - ne 0]; echo $ ?
  (root@server ~) # 1情商0,,1 - ne 0]; echo $ ?
  (root@server ~) #[[1情商0,,1 - ne 0]]; echo $ ?

Shell脚本中条件判断语句的语法结构和用法