shell中的执行流控制——for、while、until、if、case、expect语句

一、for循环

for语句元素:

for #定义变量
do #使用变量,执行动作
done #结束标志

格式1:

#!/bin/bash
for I in 1 2 3		#in表示赋值,设定I的值为1,2,3
do
        echo $I
done

在这里插入图片描述
格式2:

#!/bin/bash
for I in `seq 1 2 10`		#其中2表示跨度为2,取值从1到10的奇数
do
        echo $I
done

在这里插入图片描述
格式3:

for I in {5..1}
do
        echo $I
done

在这里插入图片描述
格式4:

#!/bin/bash
for ((I=0;I<10;I++))	#运算的方式,++表示自加一
do
        echo $I
done

在这里插入图片描述

二、while

while语句含义:表示如果判断条件为真,则一直循环执行语句
语句元素:

while true 	#条件为真,进入循环
do 		#条件成立所做的循环动作
done

例如:
在这里插入图片描述
在这里插入图片描述

三、until

与while语句相反,表示如果条件不成立,循环做的动作。
语句元素:

until false 	#条件为假
do		#条件不成立所做的循环动作
done

四、if

语句用来表示判定,可以做多次判定。
语句元素:

if 
  then 
elif 
   then 
 ... 
 else 
 fi

例如:判定文件类型
在这里插入图片描述
在这里插入图片描述

五、case

case $1 in 
           word1|WORD1) 
           action1 
           ;; 
         
           word2|WORD2) 
           action2 
           ;;
         
           *) 		#表示上述情况都不是时,执行action3
           action3
esac

例如:
在这里插入图片描述
在这里插入图片描述
注意:case语句在执行时,不是依次往下执行每条语句,而是只需要执行一次,找到满足的相应语句即可。简单理解为“点名”。

六、expect自动应答

  1. expect 是自动应答命令,用于交互式命令的自动执行
    首先需要系统中安装expect插件:dnf install expect -y
  2. 语句元素:
spawn 			        #是 expect 中的监控程序,其运行后会监控命令提出的交互问题
send				#发送问题答案给交互命令
\r				#表示回车
exp_continue  			#表示当问题不存在时继续回答下面的问题
expect eof 			#表示问题回答完毕退出 expect 环境
interact			#表示问题回答完毕留在交互界面
set NAME [ lindex $argv n ] 	#定义变量。表示NAME变量是expect脚本后跟随的第一串字符
set timeout 			#表示定义等待时间

示例:编写一个提出多个问题的脚本,使用expect完成自动应答
问题脚本:vim  ask.sh
在这里插入图片描述
普通手动交互式应答: 执行脚本,输入问题的答案,即可看到问题与答案的组合输出的结果
在这里插入图片描述
在此基础上,可以使用输入重定向的多行录入编写EOF应答脚本,解决手动输入的问题;
但存在当问题脚本做出改变时,EOF的应答脚本不能自动跟随做出改变。最好的解决办法就是使用expect自动应答
在这里插入图片描述
在这里插入图片描述
expect自动应答:
注意脚本为exp格式,调用脚本时采用expect
在这里插入图片描述
在这里插入图片描述

七、break、continue、exit

字符含义
contiue终止当前此次循环提前进入下个循环
break终止当前所在语句所有动作进行语句外的其他动作
exit脚本退出

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值