Оказалось, в моей функции create_list() копия был обнаружен малозаметный и посему дико поганый баг. А баг был с командой find. Например, если запустить ее в любом каталоге с параметрами
find /home/smallwolfie/openvpn/configs -maxdepth 1 -iname *.ovpn, то она найдет все файлы *.ovpn
Но вот если команду запустить в каталоге с файлами (/home/smallwolfie/openvpn/configs), то она упадет:
cd /home/smallwolfie/openvpn/configs
find /home/smallwolfie/openvpn/configs -maxdepth 1 -iname *.ovpn
Вывод:
find: paths must precede expression: riseup-nl.ovpn
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
Заключить маску файла в кавычки:
find /home/smallwolfie/openvpn/configs -maxdepth 1 -iname "*.ovpn"
Вывод:
/home/smallwolfie/openvpn/configs/vpnbook-pl226-tcp80.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-de4-tcp80.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-us1-tcp80.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-us2-tcp80.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-ca222-tcp80.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-ca198-tcp80.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-fr1-tcp80.ovpn
/home/smallwolfie/openvpn/configs/riseup-ca.ovpn
/home/smallwolfie/openvpn/configs/riseup-nl.ovpn
/home/smallwolfie/openvpn/configs/riseup-us.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-fr8-tcp80.ovpn
Пример из файла скрипта для соединения с определенным VPN-сервером
create_list() #$1 - dir, $2 - file mask
{
FOUNDLST=""
echo "Find in $1"
for FLE in $(find $1 -maxdepth 1 -iname "$2"|sort); do
if [ -n "$FLE" ]; then
FOUNDLST="$FOUNDLST"`basename $FLE`"\n"
fi
done
}