Условное ожидание - PullRequest
       9

Условное ожидание

0 голосов
/ 02 апреля 2020

Я хочу автоматизировать установщик, для которого у меня нет опции установки без вывода сообщений. До сих пор мне удалось написать следующий ожидаемый сценарий, который работает как ожидалось:

spawn /var/app-installer/app_install;
expect  "Provide the path to the product*"
send "/opt/app\r";
expect  "Enter the sub-app you want to install"
send "some_subapp\r"
expect  "Please confirm your selected product"
send "yes\r"
expect  "Enter \"accept\" or \"decline\" to install"
send "accept\r"
expect "Would you like to install and configure the subapp"
send "y\r"
expect "Enter logpath"
send "/var/log/subapp\r"
expect "Enter the port you want your subapp to listen to"
send "8100\r"
expect "The installation has successfully ended"
close

Я хотел расширить этот сценарий условными ожиданиями и написал его так:

spawn /var/app-installer/app_install;
expect  "Provide the path to the product*"
send "/opt/app\r";
expect  "Enter the sub-app you want to install"
send "some_subapp\r"
expect  "Please confirm your selected product"
send "yes\r"
expect  "Enter \"accept\" or \"decline\" to install"
send "accept\r"
expect {
    "Would you like to install and configure the subapp" {
        send "y\r"
        expect "Enter logpath"
        send "/var/log/subapp\r"
        expect "Enter the port you want your subapp to listen to"
        send "8100\r"
        expect "The installation has successfully ended"
    }
    "An installation of subapp has been detected. Do you want to upgrade?" {
        send "y\r"
        expect "The upgrade has successfully ended"
    }
}
close

Когда при установке приложения с расширенным сценарием ожидания строка

"expect "Would you like to install and configure the subapp" 

пропускается и оставляет приложение в ненастроенном режиме. С первой версией все работает как положено, а приложение настраивается впоследствии. Есть идеи, что мне не хватает?

...