《云计算》shell脚本编程-for循环结构、while循环结构、基于case分支编写脚本、使用shell函数

本文详细介绍了Shell脚本编程中的for、while循环结构,case分支以及如何编写函数。通过实例展示了如何检测主机存活状态、让用户猜测随机数、检测网络中不在线的主机,并解释了break、continue和exit在脚本中断与退出中的应用。
摘要由CSDN通过智能技术生成
案例1:使用for循环结构
案例2:使用while循环结构
案例3:基于case分支编写脚本
案例4:使用Shell函数
案例5:中断及退出

    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5

1 案例1:使用for循环结构
1.1 问题

本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下:

对192.168.4.0/24网段执行ping检测
ping检测可参考前一天的pinghost.sh脚本
脚本能遍历ping各主机,并反馈存活状态

    
    
    
  • 1
  • 2
  • 3

执行检测脚本以后,反馈结果如图-1所示。

1.2 方案

在Shell脚本应用中,常见的for循环采用遍历式、列表式的执行流程,通过指定变量从值列表中循环赋值,每次复制后执行固定的一组操作。

for循环的语法结构如下所示:

for  变量名  in  值列表
do
    命令序列
done
for  变量名  in  `ls /etc/*.conf`
do
    命令序列
done
for  变量名  in  {1..5}
do
    命令序列
done
for  变量名  in  `seq 5`
do
    命令序列
done

    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:练习for循环基本用法

脚本1,通过循环批量显示10个hello world:

[root@svr5 ~]# vim for01.sh
#!/bin/bash
for i in {1..10}
do
        echo "hello world"
done
[root@svr5 ~]# chmod +x for01.sh
[root@svr5 ~]# ./for01.sh

    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

脚本2,通过循环批量显示10个数字:

[root@svr5 ~]# vim for02.sh
#!/bin/bash
for i in {1..10}
do
        echo "$i"
done
[root@svr5 ~]# chmod +x for02.sh
[root@svr5 ~]# ./for01.sh

    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

步骤二:批量检测多个主机的存活状态

1)编写脚本如下:

命令备注:ping命令可以测试某台主机的连通性,

使用-c选项可以设置ping的次数,

使用-i选项可以设置多次ping之间的间隔时间(单位秒),

使用-W选项可以设置ping不通时的超时时间(单位秒)。

[root@svr5 ~]# vim chkhosts.sh
#!/bin/bash
for i in {1..254}
do
    ping -c 3 -i 0.2 -W 1 192.168.4.$i &> /dev/null
    if [ $? -eq 0 ] ; then
        echo "Host 192.168.4.$i is up."
    else
        echo "Host 192.168.4.$i is down."
    fi
done
[root@svr5 ~]# chmod +x chkhosts.sh

    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

4)测试、验证脚本

… …
[root@svr5 ~]# ./chkhosts.sh
Host 192.168.4.5 is up.
Host 192.168.4.6 is down
… …

    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5

2 案例2:使用while循环结构
2.1 问题

本案例要求编写2个使用while循环的脚本程序,分别实现以下目标:

提示用户猜测一个随机数,直到才对为止
检测192.168.4.0/24网段,列出不在线的主机地址

    
    
    
  • 1
  • 2

2.2 方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河北王承志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值