我有一个名为 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