条件表达式概述:

在各种条件结构和流程控制结构进行的各种判断,然后根据不同条件执行不同的操作

格式为:[ 条件表达式 ],比如:[ 1 -eq 2 ] && echo “ture” || echo “false”,返回结果为0

注意:括号内部注意两端要有空格

eg:用shell脚本查看home目录下是否有test.txt这个文件

#!/bin/bashecho [ -f /home/test.txt ] && echo 1 || echo 0

整数操作符运算:

-eq(等于):用法:[ 表达式1 -eq 表达式2 ]判断两个表达式是否相等-gt(大于):用法:[ 表达式1 -gt 表达式2 ]判断表达式1是否大于表达式2-lt(大于):用法:[ 表达式1 -lt 表达式2 ]判断表达式1是否小于表达式2-ge(大于等于):用法:[ 表达式1 -ge 表达式2 ]判断表达式1是否大于等于表达式2-le(小于等于):用法:[ 表达式1 -le 表达式2 ]判断表达式1是否小于等于表达式2

eg:判断2是否大于2输出结果是返回1,不是返回0

#!/bin/bash[ 2 -gt 2 ]&& echo 1 || echo 0

字符串操作符:

==(等于):判断两个字符串是否相等,用法:[“hello” == “hella” ]!=(不等于):判断两个字符串是否不相等,用法:[“hello” != “hella” ]-n:判断字符串长度是不为0则为真,用法:[ -n “hello” ]-z:判断字符串长度为0 则为真,用法:[ -z “hello” ]

eg:

1、判断hello和hella两个字符串是否相等

#!/bin/bash[ “hello”== “hella”]&& echo 1 || echo 0

2、判断hello字符串长度是不为0的结果是真

#!/bin/bash[ -n “hello” ]&& echo 1 || echo 0

文件操作符:

-d:判断目录是否存在,用法:[ -d /home ]-f:判断目录中的文件是否存在,用法:[ -f /home/test.txt ]-e:判断目录或者文件是否存在,用法:[ -e /home ]

eg:判断目录是否存在

#!/bin/bash[ -d /home ]&& echo 1 || echo 0

逻辑操作符:

!:逻辑非,对表达式进行取反,用法:[ ! -f /home/a.txt ]-a:逻辑与,对俩个表达式同时满足的条件下为真,用法:[-f /home/test.txt -a -f /home/a.txt ]-o:逻辑或,对两个表达式只要满足其中一个就为真,用法:[-f /home/test.txt -o -f /home/a.txt ]

eg:判断home目录下是否存在a.txt,和b.txt,存在返回为1,不存在返回为0

#!/bin/bash[-f /home/a.txt -a -f /home/b.txt ]&& echo 1 || echo 0

流程控制结构:

if条件语句:

单分支结构:

if [ 条件表达式 ]; then执行语句fi

多分支结构:(条件等于2)

if [ 条件表达式 ] ; then执行语句else执行语句fi

eg:判断a.txt是否存在

#!/bin/bashif [ -e /home/a.txt ] ; thenecho “ture”elseecho “false”fi

多分支结构(条件大于等于3的)

if [ 条件表达式 ] ; then执行语句elif [ 条件表达式];then执行语句…else执行语句fi

注意:多分支elif的写法,每个elif都要带有;then,最后结束的else没有then

eg:变量$1=hello,返回helloword,$1=fenxiangbe,则返回fenxiangbe.com,否则返回404

#!/bin/bashif [ $1 == “hello” ] ; thenecho “helloword”elif [ $1 == “fenxiangbe” ]; thenecho “fenxiangbe.com”elseecho “404”fi

while循环语句:

重复执行一条指令或者一组指令,直到条件不满足时停止

while [条件表达式]do执行语句done

while循环语句会对while后面的条件表达式进行判断,如果条件表达式成立,则执行do和done之间的指令,每一次执行到done时就会重新判断while条件表达式

eg:循环输出1-10的整数

#!/bin/shi=1while [ ${i} -lt 11 ]doecho ${i}((i++))done

注意:比较整数是需要用的-lt小于比较,不能用

for循环语句:

for语句和while语句类似,for循环主要用于执行次数有限的循环,while循环一般用在守护进程及无限循环,for有两种形式

第一种:变量名依次获取in关键字后面的变量取值列表,每次取一个,然后进入循环执行指令,当取完变量列表中的最后一个值并进入循环执行到done为止

for 变量名 in 变量取值列表do指令done

第二种:

for ((初始表达式; 条件表达式; 自增长))do指令done

eg:循环输出1-10的整数

#!/bin/shfor (( i = 1; i < 11; i++))doecho ${i}done

注意:中括号输入的是-eq、-lt等来判断,小括号可以使用”

测试过程中用shell的地方_软件测试之学习shell流程控制结构相关推荐

  1. -f shell 模糊匹配_生产力工具:shell 与 Bash 脚本

    1.什么是shell? 2.shell提示符 提示符是通往shell的大梦,是输入shell命令的地方: $ 为默认提示符. PS1:控制默认命令行提示符的格式:PS2:控制第二层命令行提示符的格式: ...

  2. 非核心版本的计算机上_软件测试之兼容性测试(上)

    对于基于计算机平台的软件,在测试过程中必须考虑软.硬件的兼容性,在设计测试用例的过程中必须考虑数据转换或转移的问题,应该尽力发现其可能带来的错误.不仅是基于计算机平台的软件,对于嵌入式软件也一样,在软 ...

  3. 数据库授予用户增删改查的权限的语句_软件测试之浅谈数据库技术概述

    软件测试这一行业,其实对于数据库的要求还是比较高的,最基本的增删改查操作,一定是少不了的.之前看一些企业或者公司面试要求,需要去掌握一些常用的数据库,比如说mysql,Oracle等.今天咱们就说一下 ...

  4. 开发项目之考研计划_软件测试之项目测试计划模板

    1. 引言 1.1. 文档版本 1.2. 项目情况 1.3. 预期读者 ----部门经理 ----项目经理 ----测试经理 ----需求分析师 ----开发工程师 ----测试工程师 ----XXX ...

  5. 软件测试用mysql能干什么_软件测试之MySQL的查询操作分析

    对于数据库的最基本操作,用四个字形容就是增删改查,那么查询的操作又有哪些呢?咱们先来说道说道其中的一些. 说到查询,离不开的两个关键词:一个select,一个是from.select是告诉我们要查什么 ...

  6. linux shell 变量减法_第四章 shell和环境变量

    第四章 shell和环境变量 4.1    shell简介 4.1.1 编译器 一台计算机从基本架构上讲,由最基本的硬件组成硬件结构(如:cpu.内存.主板.声卡.显卡等),我们知道,硬件组成完备,但 ...

  7. 软件测试之BUG处理流程

    什么是软件测试缺陷? 测试行业的习惯名称是bug管理. 在软件或程序开发过程中,程序员不合理的编码和不合理的系统设计结构都会导致报错,影响系统程序的正常运行. 而软件测试的目的之一就是通过手动测试或自 ...

  8. shell 压测_【原】shell编写一个简单的jmeter自动化压测脚本

    在公司做压力测试也挺长时间了,每次测试前环境数据准备都需要话费较长时间,所以一直在考虑能不能将整个过程实现自动化进行,于是就抽空写了一个自动化脚本,当然这个脚本目前功能十分简陋,代码也不完善,很有很多 ...

  9. shell shift与{}_一文掌握shell脚本中shift的用法及功能

    概述 今天主要介绍下shell脚本中shift的一些用法,这个命令还是相对比较少见的. 一.shift介绍 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数 ...

最新文章

  1. Learning hard C#学习笔记 C#简介
  2. TensorFlow 教程——电影评论文本分类
  3. BZOJ1084 [SCOI2005]最大子矩阵 动态规划
  4. 按频率对元素进行排序
  5. centos7自带数据库MariaDB重启和修改密码
  6. 测开5 - Python(模块、操作数据库、操作Excel、加密)
  7. 字典树实现_leetcode之820. 单词的压缩编码 | python极简实现字典树
  8. ADO.NET2.0 Querying Large Result Sets Asynchronously(ADO.NET 异步操作)
  9. 错误解决 “No module named ‘pytest‘“
  10. 艰难时局下电子发现蓬勃发展
  11. 常用数字信号处理方法在matlab上的实现(目录和先导)
  12. optaplanner学习笔记(六)使用Solver求解器
  13. 怎样搭建serveru ftp个人服务器
  14. 我要学编程,看什么书好?--^_^,这里推荐一些个人觉得很不错的书(五)小集篇
  15. c语言上交源代码怎么交啊,C语言问题在线等啊作业提交上交的的内容必须由以下两个部分组成,缺 爱问知识人...
  16. poi word文档在书签处插入图片
  17. 互联网+时代,淘宝模式的衰退不可避免
  18. el-input 使用 回车键会刷新页面的问题
  19. 【满分】【华为OD机试真题2023 JAVAJS】核酸检测人员安排
  20. 数字城市中模型的建立

热门文章

  1. ShotCut——视频处理剪辑神器
  2. Android蓝牙电话(SCO)和蓝牙音乐(A2DP)总结(四)
  3. xcode与androidstudio 设置自定义主题
  4. 树莓派之ubuntu安装docker
  5. tensorflow之安装PIL
  6. Hls之TS流分离音视频
  7. 计算机基础(四):C语言字符串处理文件保存
  8. 代码上传到github上
  9. cxf打印报文日志_使用线程池实现异步打日志和存库的任务调度
  10. mvc jquery ajax分页实例,jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解,mvcpagerajax分页...