欢迎光临
我们一直在努力

shell编程——case多分支及循环语句(包含操作实验)

本章要点:

case多分支

循环语句

一、case语句的结构

针对变量的不同取值,分别执行不同的命令序列

case 变量值 in                               case 控制指令 in
模式1)                                       start)
    命令序列1                                    启动XX服务
    ;;                                          ;;
模式2)                    》                 stop)
    命令序列2                                    停止XX服务
    ;;                  》                     ;;
.....                                        .....
*)                       》                 *)                                
    默认命令序列                                显示服务脚本的用法
esac                                          esac

示例1

●击键类型识别

  • 提示用户输入一个字符

  • 判断出该字符是字母、数字或者其他字符

示例2

  • 提示用户输入一个成绩

  • 判断成绩等级

二、循环语句

1、for语句的结构

读取不同的变量值,用来逐个执行同一组命令

for变量名in取值列表                      for收件人in邮件地址列表
do                       >               do
  命令序列               >                 发送邮件
done                                     done

示例1

顺序输出数字1-10

示例2 

批量添加用户

●用户名存放在users.txt文件中,每行一个

  • 初始密码均设为123456

  • 验证脚本

示例3

●根据IP地址检查主机状态

  • IP地址存放在ipadds.txt文件中,每行一个

  • 使用ping命令检测各主机的连通性

2、while语句结构

重复测试某个条件,只要条件成立则反复执行

while条件测试操作                     while 未猜中正确价格
do                         >          do
  命令序列                 >            反复猜测商品价格
done                                  done

示例1

●批量添加用户

  • 用户名称以stu开头,按数字顺序进行编号

  • 共添加20个用户,即stu1、 stu2、…….stu20 

  • 初始密码均设为123123

 

示例2

●猜商品价格

  • 通过变量RANDOM获得随机数

  • 提示用户猜测并记录次数,猜中后退出循环

3、until语句的结构

重复测试某个条件,只要条件不成立则反复执行

until条件测试操作                 while未超过10
do                    >           do
  命令序列            >             数字依次递增
done                              done

示例1

●计算1~50的和值

  • 通过循环累加的方式计算1~50的和值

示例2

●为指定用户发送在线消息

  • 若用户不在线(未登录系统),则每5秒试一次,直至用户登录系统后在发送信息

  • 用户名与消息通过位置参数传递给脚本

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。