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

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

猜你喜欢

转载自blog.csdn.net/weixin_42048417/article/details/80139244