На Mac: я полагаю, вам нужен тайм-аут? Что не так с использованием опции -t
(время ожидания)?
Скрипт для этого, адаптированный по вашей ссылке:
checkInternet () {
error=$(ping -q -t1 -c1 "8.8.8.8" 2>&1 >"/dev/null" || true)
if [ "${error}" != "" ]; then
echo "No internet" >&2
exit 1
fi
echo "Internet" >&2
}
checkInternet