Логика этого скрипта Ваша.
Я такого точно не писал.
У меня логика такая:
- udev отслеживает появление ttyUSB? и передаёт значение на check3Gtty
- check3Gtty вписывает действительное значение "Modem" в wvdial.conf, попутно в трее запускается tray3Gcsq
- клик по tray3Gcsq запускает up3Gmodem
- up3Gmodem при необходимости запрашивает PIN (AT+CPIN?), автоматически определяет оператора (AT+COPS?) и формирует команду на wvdial
- wvdial отрабатывает соответствующую секцию wvdial.conf и устанавливает соединение.
Всё это есть на моём gighub
Ну и где здесь if [ -f /etc/wvdial.conf ], а? Не надо валить с больной головы на здоровую. А ваш скрипт мало того что примитивен и работает только с ручной правкой, он ещё и с ошибками.