使用學習過的知識完成網絡的 ping
#!/bin/bash
cd /root/Desktop/test_txt
if [ ! -d "ping" ];then
mkdir ping
else
echo "文件夾已經存在"
fi
cd ping
touch ping_exist.txt
touch ping_nonentity.txt
for I in $(seq 1 253)
do
# 在官方 -c<完成次數> 設置完成要求迴應的次數。
# ping -c 4 www.baidu.com 請去嘗試一下就知道了
# /dev/null 代表空, 類似於一個黑洞,把輸出的內容丟進去,就沒有了。
# 命令後面 & , 代表程序在後臺運行
# > 是輸出的定向符號。
ping -c 1 192.168.188.$I &> /dev/null
if [ $? -eq 0 ] #如果上一條語句正確執行了則 #? 的值就會爲 0 ,即 ping 通了
then
# 將 ping 通的ip記錄下來,輸出重定向,以不覆蓋的方式重定向到這個文件中
echo "192.168.188.$I 存在." >> ping_exist.txt
else
echo "192.168.188.$I 不存在." >> ping_nonentity.txt
fi
done
echo "執行完畢!"
運行的時候有點慢,所以如下:
[root@controller test_shell]# chmod 777 ping.sh
[root@controller test_shell]# ./ping.sh &
./文件名.sh & 中的&表示在後臺運行此程序
[root@controller ping]# sed -n '$=' ping_exist.txt
37
sed -n ‘$=’ 後跟文件名,輸出文件中包含的行數
我測試的網段中有 37 個被使用的 ip