shell中的执行流控制


1.for:循环

作用:为循环执行动作

for语句结构
   for       定义变量
   do        使用变量,执行动作
   done      结束标志
 for语句的基本格式
 ###### 格式1:
 `#!/bin/bash`
 `for WESTOS in $(seq 1 2 10)`
 `do`
       `echo $WESTOS`
 `done`

 ###### 格式2:
 `for WESTOS in westos linux lee`
 `do`
        `echo $WESTOS`
 `done`
 
 ###### 格式3:
 `for WESTOS in {10..1}`
 `do`
        `echo $WESTOS`
 `done`
 
 ###### 格式4:
 `for ((WESTOS=0;WESTOS<10;WESTOS++))`
 `do`
         `echo $WESTOS`
 `done`

5. 合格式:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.while…do:循环

 while...do语句
作用: 条件为真执行动作
####语句结构
 `while ture`    <!--条件为真-->
 `do`            <!--条件成立所作循环动作-->
 `done`          <!--结束-->

在这里插入图片描述

3.until…do

和while 相反,当条件不成立时,执行什么动作。

 ##### 作用:条件为假执行动作
 ##### 语句结构
 `until false`    <!--条件为假-->
 `do`             <!--条件不成立所作循环动作-->
 `done`           <!--结束-->

4.if…then…elif…then…else…fi:多条件判断

作用:多次判定条件执行动作

代码结构
 `if`         <!--首次判断定-->
 `then`       <!--条件成立执行动作-->
 `elif`       <!--当首次判定不成立时再次判定-->
 `then`       <!--条件成立执行动作-->
 `...`        <!--elif可以书写多次-->
 `else`       <!--所有条件不成立执行动作-->
 `fi`         <!--结束-->

在这里插入图片描述

5.case

用法

case $1 in
         word1|WORD1)
		 action1
         ;;
         word2|WORD2)
         action2
         ;;
         *)
         action3
         esac

在这里插入图片描述

6.expect

问题脚本
#!/bin/bash
read -p "what's your name:" NAME
read -p "How old are you: " AGE 
read -p "Which objective: " OBJ
read -p "Are you ok? " OK

echo $NAME is $AGE\'s old study $OBJ feel $OK
应答脚本
#!/usr/bin/expect
set timeout 1                             设置最长等待时间为1s
set NAME [ lindex $argv 0 ]               后面跟的第一串字符为NAME值
set AGE [ lindex $argv 1 ]                后面跟的第二串字符为AGE值
set OBJ [ lindex $argv 2 ]                后面跟的第三串字符为OBJ值
set FEEL [ lindex $argv 3 ]               后面跟的第四串字符为FEEL值
spawn /mnt/ask.sh                         监控/mnt/ask.sh脚本,找出其中的问题
expect {                                  ##包含
"name" { send "$NAME\r";exp_continue }        包含 name 字符时发送$NAME的值
"old" { send "$AGE\r";exp_continue }          包含 old 字符时发送
"objective" { send "$OBJ\r";exp_continue }    包含 objective 字符时发送
"ok" { send "$FEEL\r" }
}
expect eof

在这里插入图片描述

7.break,continue,exit,return

contiue        ##终止当此次前循环提前进入下个循环
break         ##终止循环,终止当前所在语句所有动作,进行其他语句动作
exit          ##脚本退出
return               ##终止所在函数

在这里插入图片描述
在这里插入图片描述
脚本调试:sh -x yi.sh
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值