Почему мой ожидаемый сценарий завершается преждевременно? - PullRequest
0 голосов
/ 08 февраля 2019

Вот мой сценарий кроме:

#!/usr/bin/expect
spawn openvpn --config peter.ovpn
expect -exact "Enter Private Key Password: "
send -- "mypassword\r"

Я запускаю его и вижу, что OpenVPN запрашивает пароль моего клиента.Но скрипт завершается, по-видимому, без отправки пароля.Когда я пытаюсь с неправильным паролем, это то же самое (нет сообщения о неверном пароле).Это также точно такой же результат, если я удаляю строку send -- "mypassword\r" в конце ожидаемого сценария.

Это мой первый ожидаемый сценарий, так что, вероятно, мой синтаксис неправильный.Или, может быть, OpenVPN выдает меня за использование ожидаемого сценария для подключения?

1 Ответ

0 голосов
/ 08 февраля 2019

Ваш синтаксис в порядке.Проблема в том, что у скрипта больше нет команд для запуска после отправки пароля, поэтому ожидаемый скрипт завершается, и это убивает openvpn.

Что вам нужно сделать после отправки пароля?

Если вам просто нужно сохранить работу openvpn, сделайте следующее:

#!/usr/bin/expect
spawn openvpn --config peter.ovpn
expect -exact "Enter Private Key Password: "
send -- "mypassword\r"
set timeout -1
expect eof

-1 означает"бесконечен", и expect eof означает, что вы ожидаете завершения порожденного процесса, прежде чем ожидаемый сценарий может завершиться.

...