簡體   English   中英

為什么在while循環內對未知主機進行ping操作?

[英]Why ping unknown host is happening when inside a while loop?

我試圖從csv文件中獲取一列,並在while循環中ping每行,但是每次它只顯示ping:unknown host(網站)

#!/bin/bash
while IFS=, read num ip; do
   echo $num
   ping -c 10 $ip
done <site.csv

並且,csv文件的格式為

1, facebook.com
2, google.com

結果永遠是

ping: unknown host facebook.com
ping: unknown host google.com

但是當我直接對網站進行ping操作時,它實際上可以正常工作,因此我認為這不是網絡問題

-bash-4.1$ ping -c 2 facebook.com
PING facebook.com (173.252.120.6) 56(84) bytes of data.
64 bytes from edge-star-shv-12-frc3.facebook.com (173.252.120.6): icmp_seq=1 ttl=70 time=94.1 ms
64 bytes from edge-star-shv-12-frc3.facebook.com (173.252.120.6): icmp_seq=2 ttl=70 time=93.8 ms

--- facebook.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1094ms
rtt min/avg/max/mdev = 93.882/94.040/94.199/0.345 ms

是while循環還是從csv中讀取導致問題的列?

有沒有一種方法可以使用wile循環從csv文件讀取站點並對其執行ping操作?

遵循格倫·傑克曼(Glenn Jackman)關於問題是DOS行尾的建議,這是確保將其從輸入中刪除的一種簡單方法。 更換:

while IFS=, read num ip; do

帶有:

while IFS=$',\r' read num ip; do

通過向IFS添加\\r ,這使得外殼程序將DOS字符視為字段分隔符。 這意味着它不會成為ip一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM