我有一个名为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
请建议。
答案 0 :(得分:0)
您可以使用此更改来执行此操作 -
#!/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