Для своих нужд я использую этот скрипт:
#! /bin/bash
while read -r client address
do
ping -c 1 $address
ret=$?
if [[ 0 -eq $ret ]]
then
echo "$client: online"
else
echo "$client: off line"
fi
done < clients
С:
IFS=,
Установить запятую в качестве разделителя полей
while read -r foo bar
Чтение файла и сохранениеполя в client
и adrress
переменных
pinc -c 1 address
Пинг address
только один раз
ret=$?
Get ping
возвращаемое значение команды (0когда все идет как надо)
if [[0 -eq $ ret]] ....
проверить, успешно ли ping
echo "$client: online"
Учитывая ping
результат, печатать онлайн или офлайн
done < clients
Идиоматическая конструкция для чтения файла строка за строкой