Witam serdecznie

Mimo, że nie jestem programistą pokusiłem się o napisanie skryptu, który umożliwi mi nawiązywanie połączenia IPsec pomiędzy routerem a komputerem.
Zamierzam po podaniu stanu wysokiego na wejście "bin0" nawiązać takie połączenie i zasygnalizować jego stan na wyjściu routera out0.
W przypadku, gdy na wejściu jest stan niski, chciałbym połączenie IPsec deaktywować
Dodatkowo mam do dyspozycji diodę LED, którą wykorzystuję do oceny stanu nawiązanego połączenia. Mruga szybko jak jest problem, a zwalnia jak pingowanie przebiega poprawnie.
Zwracam się do szanownych forumowiczów o pomoc w rozwiązaniu problemu: Warunek drugiej, wewnętrznej pętli While powinienem powiązać z odczytem wejścia bin0, ale nie mam pojęcia jak to najsprawniej zrobić. Spędziłem kilkanaście godzin i się poddałem. Prośba do Waś specjalistów o wsparcie.
Poniżej dołączam kod projektu:

#!/bin/sh

POLLINTERVALL=1

while true
do
io get bin0
VAL=$?
if [ "$VAL" != "$OLD" ]; then
if [ "$VAL" = "0" ]; then
service ipsec1 start
while [ "$VAL" != "$OLD" ]
do
if ping -c 1 192.168.1.7 &> /dev/null; then
led slow
sleep 5
io set out0 1
led off
else
led fast
sleep 5
io set out0 0
fi
done
fi
OLD=$VAL
fi
service ipsec1 stop
sleep $POLLINTERVALL
done