软件测试软件测试

shell流控制语句总结

2019-11-14  本文已影响0人  下午茶_da6d

shell流控制语句实战:https://www.jianshu.com/p/ee0c5567d491
shell流程控制语句语法梳理:
1 分支语句:if、case
2 循环语句:for、while、until,一般配合if、break、continue使用

1.分支语句

(1)单分支if语句

格式:
if [ 条件判断式 ]; then
代码块
fi

(2)双分支if语句

格式:
if [ 条件判断式 ]; then
条件成立时,执行的程序
else
条件不成立时,执行的程序
fi

(3)多分支if语句

if [ 条件判断式1 ]; then
执行程序1
elif [ 条件判断式2 ]; then
执行程序2
.....省略更多条件.....
else
最后执行此程序、
fi

几个常用的表达式:

-f filename:普通文件文件存在则为真
-d filename :目录文件存在为真
-z string:长度为0则为真
-a string:长度不为0则为真
-s filename:文件长度不为0

if应用举例:

[avatar@xxx pay]$ vi checkln.sh 
  1 #!/bin/bash
  2 #检查当前目录下是否有清缓存脚本软链接,没有则创建
  3 file="./cleancache.php"
  4 if [ ! -f $file ];then
  5         ln -s /home/avatar/system/libs/framework/baseclient/cleancache.php cleancache.php
  6     echo "cleancache 软链接创建成功!"
  7 else
  8     echo "当前目录下已存在cleancache软链接"
  9 fi
[avatar@xxx pay]$ sh checkln.sh 
cleancache 软链接创建成功!
[avatar@xxx pay]$ sh checkln.sh 
当前目录下已存在cleancache软链接

(4)case语句

case $变量名 in
"值1")
    如果变量的值等于值1,则执行程序1
;;
"值2")
    如果变量的值等于值2,则执行程序2
    ;;
.....
*)
    如果变量的值都不是以上的值,则执行此程序
;;
esac

Eg:测试环境配置微信时需要将openId、appId、appSecret、mich_id等替换为线下选用的测试公众号的值,此时可以用case,然后将这一组键值对定义在代码块里进行替换操作,这样配置时需要做的只是选择公众号了

2.循环语句

(1)for循环

for循环格式1:遍历

for 变量 in 列表

do
  command
done

for循环格式2:

for ((i=val1;i<val2;i++/--))
do
Command。。。
done

(2)while循环

语法格式:

while command
do
   Command。。。
done

until循环

until 循环执行一系列命令直至条件为 true 时停止。until 循环与 while 循环在处理方式上刚好相反
until 循环格式为:

until command
do
   Statement(s) to be executed until command is true
done

示例:

$ cat until01.sh 
#!/bin/sh
i=0
until [ $i -gt 5 ]
do
 let "i++"
 echo "this is $i"
done

break和continue命令

1.break命令
break命令允许跳出所有循环(终止执行后面的所有循环)
2.continue命令
continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。
和其他语言一样,不再赘述

上一篇 下一篇

猜你喜欢

热点阅读