对主机执行 ping 操作并以 CSV 格式输出



我有一个名为 ip.csv 的 CSV 文件,格式如下:

Host,Status
192.168.0.2
192.168.0.4

我想 ping IP 并将输出保存在同一个文件中,ip.csv ,在host旁边。输出应如下所示:

Host,Status
192.168.0.2,Alive
192.168.0.4,Down

当我执行下面的脚本时,我没有得到想要的输出:

#!/bin/bash
while IFS=',' read -r host status
do
ping -c 1 "$host"
  if [ $? -eq 0 ]; then     
echo -e "$host,Alive" >> ip.csv
else
echo -e "$host,Down" >> ip.csv
fi
done < ip.csv

请指教。

您可以使用此更改来执行此操作 -

#!/bin/bash
a=""
while IFS=',' read -r host status
do
if [ "$host" = "Host" ]; then
    a="${a}${host}"','"${status}"$'n'
else
    ping -c 1 "$host"
    if [ $? -eq 0 ]; then     
        a="${a}${host}"',Alive'$'n'
    else
        a="${a}${host}"',Down'$'n'
    fi
fi
done < ip.csv
echo -e "${a}" > ip.csv

相关内容

  • 没有找到相关文章

最新更新