需求如下:
写一个shell脚本,把10.0.1.0/24网段在线的ip列出来。
参考解答如下
- 方法1
#!/bin/bash
ip="10.0.1."
for i in $(seq 1 254)
do
ping -c 2 $ip$i &> /dev/null
if [ $? -eq 0 ]
then
echo The host $ip$i is online.
else
echo The host $ip$i is offline.
fi
done
- 方法2
ip="10.0.1."
i=1
while [ $i -le 254 ]
do
ping -c 2 $ip$i &> /dev/null
if [ $? -eq 0 ]
then
echo The host $ip$i is online.
else
echo The host $ip$i is offline.
fi
i=$(($i+1))
done
- 方法3(多线程)
#!/bin/bash
ip="10.0.1."
for i in $(seq 1 254)
do
{
ping -c 2 $ip$i &> /dev/null
if [ $? -eq 0 ]
then
echo The host $ip$i is online.
else
echo The host $ip$i is offline.
fi
} &
done
wait