Я бы прокомментировал, но у меня недостаточно очков для этого. Я все равно хочу внести свой вклад. Таким образом, это заставляет его работать, даже если цикл while вложен в другой цикл. перед перерывом переменная c сбрасывается на ноль. кредиты @anubhava, которые придумали оригинальное решение.
#!/bin/sh
while ! test -d /somemount/share/folder
do
echo "Waiting for mount /somemount/share/folder..."
((c++)) && ((c==10)) && c=0 && break
sleep 1
done