linux Ping结果未保存在文件中[重复]

92dk7w1h  于 2023-02-03  发布在  Linux
关注(0)|答案(1)|浏览(122)
    • 此问题在此处已有答案**:

Bash loop only read the last line(6个答案)
19小时前关门了。
我正在运行一个简单的shell脚本,该脚本启动ping并将结果保存到一个txt文件。

ips=$(cat host.txt)

for ip in $ips
do
ping -c 2 $ip > pingtest.txt  
done

但是由于某种原因,文本文件中没有输出,我确信IP正在ping(我已经用TCP转储确认了)。
有人能帮帮我吗?
主机文件输出为:

10.0.0.10

10.0.0.11

172.28.209.43

172.16.84.131
pbwdgjma

pbwdgjma1#

不要在每次迭代时都覆盖文件,可以这样做。

ips=$(cat host.txt)

for ip in $ips
do
ping -c 2 $ip 
done > pingtest.txt

另外,建议在启用文件名扩展a.k.a globbing时,使用一致的缩进并避免单词拆分。例如,您可以使用while read循环而不是for

while IFS="" read -r ip
do
    ping -c 2 "$ip"
done <host.txt > pingtest.txt

相关问题