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

条件表达式概述:

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

格式为:[ 条件表达式 ],比如:[ 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等来判断,小括号可以使用”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值