Без цикла while:
# -W 50 = timeout after 50 seconds
# -c 1 = 1 packet to be sent
response="$(ping -W 50 -c 1 "$1" | grep '1
packets transmitted, 1 received')"
if [ "$response" == '' ] ; then
echo no response after 50 seconds
else
echo connected
fi