[英]bash script to read/ping a list of ip addresses from a text file and then write the results to another file?
我有一個文本文件,其中包含IP地址列表,稱為address.txt,其中包含以下內容
172.26.26.1 wlan01
172.26.27.65 wlan02
172.26.28.180 wlan03
我需要編寫一個bash腳本來讀取唯一的IP地址,對它們執行ping操作,然后將其輸出到另一個文本文件中,如下所示:
172.26.26.1是UP
172.26.27.65已關閉
172.26.28.180是DOWN
我對bash腳本非常陌生,所以我不確定從哪里開始。 任何幫助將非常感激。
在Linux中,這可以工作:
awk '{print $1}' < address.txt | while read ip; do ping -c1 $ip >/dev/null 2>&1 && echo $ip IS UP || echo $ip IS DOWN; done
我現在沒有要測試的cygwin,但它也應該在那里工作。
說明:
awk
我們從輸入文件中獲取第一列並將其通過管道傳遞到循環中 ping
發送到$ip
,並將標准輸出和標准錯誤重定向到/dev/null
這樣它就不會污染我們的輸出 ping
成功,則執行&&
之后的命令: echo $ip IS UP
ping
失敗, ||
之后的命令 被執行: echo $ip IS DOWN
在腳本中添加一些更具可讀性的擴展格式:
#!/bin/sh
awk '{print $1}' < address.txt | while read ip; do
if ping -c1 $ip >/dev/null 2>&1; then
echo $ip IS UP
else
echo $ip IS DOWN
fi
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.