这篇文章为大家带来有关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比较是否为同一个文件,或者用于判断硬连接,是否指向同一个inode4)判断整数
判断参数含义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脚本中条件判断语句的语法结构和用法