Shell脚本编程(十三)

需求假设问题的解决

我在博客Shell脚本编程(一)中提出了一个需求假设:

测试一下公司内当前子网内有多少主机可以连通(ping通),并记录下ping通PC的ip地址。

 

经过前面十二篇博客的学习,大家应该对Shell编程语言的变量、运算符、控制语句和函数有一定的掌握,那么我们就应该具有解决这个问题的能力。

 

解决问题流程:

1.    查看自己计算机的IP地址:ifconfig

我的计算机IP是192.168.1.132,因为我们公司所有PC都连在同一个路由器上,所以我们公司的PC在网段192.168.1.1到192.168.1.254之间,所以我的PC需要查看能ping通这个网段之内哪些计算机。

2.    经过上述分析,如果编写一个Shell脚本,需要在脚本程序中定义一个变量用来表示网段192.168.1.1到192.168.1.254之间某一个IP地址,又因为这是个循环查找,所以需要用到循环语句for 或者while。ping时需要查看结果,所以需要用到 $?。因为需要记录下ping通PC的ip地址,所以需要建立一个文件来存放结果。

 

示例程序如下:

#!/bin/bash

I=0

touch result.txt

while [ $I -lt 255 ]

do

       I=`expr$I + 1`

       echo"ping host: 192.168.1.$I"

       ping-c 1 192.168.1.$I

       if[ $? -eq 0 ]

       then

              echo"host:192.168.1.$I can be connected"

              echo"192.168.1.$I" >> result.txt

       else

              echo"host:192.168.1.$I can't be connected"

       fi

done

 注:如果你的公司内不止一个网段,在程序中再增加一个循环语句即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值