Есть несколько сообщений об одном и том же, но я все еще не могу заставить свой сценарий ожидания работать правильно. Я намерен автоматизировать все, но оставить ввод пароля для пользователя. Итак, есть 3 части сценария:
- автоматический вход
- дать пользователю возможность ввести пароль
- вернуть управление сценарию Expect для продолжения работы
Итак, у меня есть скрипт, который будет создан и имеет 3 команды чтения. Первый и последний должны быть заполнены Expect, а второй я хотел бы ввести сам:
#!/bin/ksh
read user?User:
echo "Expect entered the username $user"
read pass?Password:
echo "User entered the password $pass"
read command?"Shell>"
echo "Expect entered the command $command"
Мой сценарий ожидания:
#!/usr/bin/expect
spawn ./some_script
expect User
send I-am-expect\r
expect Password
interact
expect Shell
send I-am-expect-again
К сожалению, после того, как я ввел пароль, скрипт не продолжил работу и остался в режиме взаимодействия:
[root@localhost ~]# ./my-expect
spawn ./some_script
User:I-am-expect
Expect entered the username I-am-expect
Password:i am user
User entered the password i am user
Shell>
И, наконец, когда я ввожу что-то в «Shell» и нажимаю [ENTER], ожидайте выхода с ошибкой:
Expect entered the command
expect: spawn id exp4 not open
while executing
"expect Shell"
(file "./my-expect" line 7)
[root@localhost ~]#
Я ценю любое объяснение или решение этой проблемы. Я использую ожидание версии 5.45