首页 > 系统相关 >shell脚本:条件语句

shell脚本:条件语句

时间:2022-11-01 22:56:46浏览次数:37  
标签:语句 脚本 shell 是否 测试 条件 字符串 格式 分支

导图

1.条件测试

1.1 test命令测试

格式1:test  条件表达式
格式2:[  条件表达式  ]

1.2 test操作符

-d:测试是否为目录(Directory)
-e:测试目录或文件是否存在(Exist)
-a:测试目录或文件是否存在(Exist)
-f:测试是否为文件(File)
-r:测试当前用户是否有权限读取(Read)
-w:测试当前用户是否有权限写入(Write)
-x:测试当前用户是否有权限执行(eXcute)
-L: 测试是否为软连接文件

 

 

 1.3 属性测试补充

-s FILE #是否存在且非空
-t fd #fd 文件描述符是否在某终端已经打开
-N FILE #文件自从上一次被读取之后是否被修改过
-O FILE #当前有效用户是否为文件属主
-G FILE #当前有效用户是否为文件属组

2.逻辑测试

2.1格式

格式1∶    [ 表达式1 ] 操作符 [ 表达式2 ]…
格式2∶     命令1      操作符    命令2…

 

2.2常见条件

  • -a或&&:逻辑与,“而且”的意思全真才为真

  • -o或||:逻辑或,“或者”的意思一真即为真

  • !:逻辑否

3.整数数值比较

3.1比较格式

[  整数1  操作符  整数2  ]  

 

3.2常用操作符

  • -eq:第一个数等于(Equal)第二个数

  • -ne:第一个数不等于(Not Equal)第二个数

  • -gt:第一个数大于(Greater Than)第二个数

  • -lt:第一个数小于(Lesser Than)第二个数

  • -le:第一个数小于或等于(Lesser or Equal)第二个数

  • -ge:第一个数大于或等于(Greater or Equal)第二个数

 

 

 

4.字符串比较

4.1格式

[  字符串1  =  字符串2 ]   //是否相同

[  字符串1  !=  字符串2 ]  //是否不相同

[  -z  字符串 ]    //是否为空

[  -n  字符串 ]   //字符是否存在

 

4.2常用操作符

  • =:字符串内容相同

  • !=:字符串内容不同,! 号表示相反的意思

  • -z:字符串内容为空

  • -n: 字符是否存在

 

 

 

5.if语句

5.1单分支

格式:
if 判断条件;                       //if表示开始
then   条件为真时 执行代码
fi                               //fi表示结束

5.1.1单分支流程图

 

 

 

5.2双分支

格式:
if 判断条件; then        
 条件为真时,执行的分支代码    

else
 条件为假时,执行的分支代码
fi

 

5.2.1双分支流程图

 

 

 

5.3多分支

格式:
if 判断条件1
then
 条件1为真时,执行的分支代码

elif 判断条件2
then
 条件2为真时,执行的分支代码

elif 判断条件3;then
 条件3为真时,执行的分支代码

...
else
 以上条件都为假时,执行的分支代码
fi

 

5.3.1多分支流程图

 

 

 

 

 

6.case语句

格式:
case 变量引用 in
PAT1)
 分支1
 ;;
PAT2)
 分支2
 ;;
...
*)
 默认分支
 ;;

 

 

标签:语句,脚本,shell,是否,测试,条件,字符串,格式,分支
From: https://www.cnblogs.com/suoluo212/p/16825396.html

相关文章

  • MySQL基础语句
    DDL(DataDefinitionLanguage) DML(DataManipulateLanguage) DQL(DataQueryLanguage)聚合函数聚合函数作用于字段,而且NULL值不参与计算分组查询 具体......
  • Linux学习笔记(第零篇)Linux文件系统及Shell
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • JMETER与BeanShell
    变量Beanshell应用自定义变量有两种方法:#第一种方法,使用${key}格式,但是需要注意这是用应用的变量是没有定义数据类型的#log.info(StringKey)只能打印字符串,所以按下述......
  • 数据库常用语句
    https://blog.csdn.net/weixin_55972781/article/details/118399532创建表CREATETABLEtable1(materialIdTEXT,resourceTypeTEXT,localPathTEXT,remoteUrlTEX......
  • shell脚本里的sed和awk
    一、sed1.1、sed的原理sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供一组规则来编辑数据流。sed编辑器可以根据命令来处理数据流中的数据,这些命令要么......
  • Shell脚本
    导图1.程序编程风格面向过程语言做一件事情,排出个步骤,第一步干什么,第二步干什么,如果出现情况A,做什么处理,如果出现了情况B,做什么处理问题规模小,可以步骤化,按部就班......
  • 四、循环语句plus
    一.while循环的基础语法语法while条件语句:条件满足,做事情1条件满足,做事情2条件满足,做事情3(省略)...注意事项条件语句结果:布尔类型【True:继续循......
  • 【域渗透】登录脚本下发
    0x1、利用场景当获取到域控权限或domainadmin等高权限时,想横向到域内PC主机上对方开启了防火墙,无法通过445、135进行横向利用,可以通过登录脚本绑定的方式获取目标主机权......
  • 监控进程脚本(达梦)
    2行为项目名称12行为应用启动命令1#!/bin/bash2name=dmserver3echo------------------------4echo"ps-ef|grepdmserver|grep-v"grep"|wc-l"......
  • shell中的文本处理命令和正则表达式
    一、文本处理命令1.1、sort命令 使用格式:sort [选项] 参数常见选项:选项作用-f忽略大小写,将小写字母转换成大写字母来比较-b忽略每行前面的空格-n......