Let me provide two examples: One without the $NAMES, one with, including the code.
Without (Output, followed by code)
Host (121.121.121.121) is OFFLINE Fri Jun 15 23:44:10 EDT 2012
Host (222.222.222.222) is ONLINE! Fri Jun 15 23:44:10 EDT 2012
Host (111.111.111.111) is OFFLINE Fri Jun 15 23:44:20 EDT 2012
#HOSTS="121.121.121.121 222.222.222.222 111.111.111.111"
for myHost in $HOSTS
do
count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if [ ${count:-0} -eq 0 ] || [ -z "$count" ]; then
echo -e "Host ($myHost) is\t \033[31mOFFLINE\033[0m $(date)"
else
echo -e "Host ($myHost) is\t \033[32mONLINE!\033[0m $(date)"
fi
done
-----------------------------
With (followed by code)
$HOSTS="121.121.121.121 222.222.222.222 111.111.111.111"
$NAMES="AKILL RANDOM FILLER BUTTSECKS"
count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
#Check to see if ping was successful and display. With CoLoRzZz!
if [ ${count:-0} -eq 0 ] || [ -z "$count" ]; then
echo -e "Host $myName ($myHost) is\t \033[31mOFFLINE\033[0m $(date)"
else
echo -e "Host $myName ($myHost) is\t \033[32mONLINE!\033[0m $(date)"
fi
done
done
Host AKILL (121.121.121.121) is OFFLINE Fri Jun 15 23:51:39 EDT 2012
Host RANDOM (121.121.121.121) is OFFLINE Fri Jun 15 23:51:49 EDT 2012
Host FILLER (121.121.121.121) is OFFLINE Fri Jun 15 23:51:59 EDT 2012
Host BUTTSECKS (121.121.121.121) is OFFLINE Fri Jun 15 23:52:09 EDT 2012
Host AKILL (222.222.222.222) is ONLINE! Fri Jun 15 23:52:09 EDT 2012
Host RANDOM (222.222.222.222) is ONLINE! Fri Jun 15 23:52:09 EDT 2012
Host FILLER (222.222.222.222) is ONLINE! Fri Jun 15 23:52:10 EDT 2012
Host BUTTSECKS (222.222.222.222) is ONLINE! Fri Jun 15 23:52:10 EDT 2012
Host AKILL (111.111.111.111) is OFFLINE Fri Jun 15 23:52:20 EDT 2012
Host RANDOM (111.111.111.111) is OFFLINE Fri Jun 15 23:52:30 EDT 2012
As you can see, the names dont stay in sync with the hosts as they should.
I think you're correct about using arrays.
Hrm..