Опа, грешка. Показва, че проблемът е на 13 ред.
Не зная как постигаш тази грешка, но твоят скрипт работи. Пробвах го и аз през същата услуга, и след като си добавил пропуснатата cat команда, единственият проблем пред успешното изпълнение е, че въпросният симулатор няма ping команда, така че не можеш там да го видиш напълно работещ. Тествай в пълноценна конзола. Ако нямаш Linux, то можеш набързо да си пуснеш един във виртуална машина с VirtualBox, пък бил той и от LiveCD (т.е., без инсталация).
Проверката с ping дали някой хост е достъпен в много ситуации е добра и достатъчна (стига в защитната стена на този хост да не ти е забранено да му изпращаш icmp заявки). Но реализацията в твоя скрипт може да те излъже. Първо, когато наблюдаваш състоянието на нещо със скрипт, то статусът "ОК" (в твоя случай, "online") трябва да се получи от съвкупността на положителните отговори на всички проверки. В твоя скрипт имаш една проверка (тази дали броят на върнатите пакети е нула) и положителния ѝ резултат си го насочил към статуса "offline". Така във всеки друг случай, в който числото не е нула (дори и в текущия случай, когато няма ping команда в тестера), ще ти се връща статус "online", а това може да е пагубно в реална работна постановка. Обърни проверките в скрипта така, че да се връща online само тогава, когато си сигурен, че е така.
Полезно би било, ако увеличиш броя на ping-овете и проверяваш как точно върнатият брой пакети отговаря на броя на изпратените. Ако има върнати, но броят им е по-малък от изпратените, да имаш известие и за това, че хостът е достъпен, но има загуби (връзката до него не е добра).
Но какво и как е нужно да се добави/промени по скрипта наистина много зависи от това кой и за каква цел ти е дал задачата.