Я пишу некоторые ожидаемые команды в bash.
Сценарий:
#!/bin/bash
set timeout -1
expect -c "
spawn telnet $IP $PORT1
sleep 1
send \"\r\"
send \"\r\"
expect Prompt1>
interact timeout 20 {
sleep 1
}
expect {
Prompt2> {send \"dir\r\" }
}
"
Мои намерения в сценарии: сначала разрешить ему подключиться к компьютеру, когда он увидит Prompt1, дать ему контроль, я выполню команду для загрузки определенного изображения. Затем подождите, пока не появится Prompt2 (который указывает, что изображение было загружено). Затем пусть он выполнит дальнейший набор команд.
После запуска скрипта я мог войти в интерактивный режим, загрузить свое изображение. Проблема в том, чтобы выйти из интерактивного режима на удаленном компьютере и вернуть ему контроль.
Ошибка, которую я получил:
expect: spawn id exp4 not open
while executing
"expect -nobrace Prompt2 {send "dir\r" }"
invoked from within
"expect {
Prompt2 {send "dir\r" }
}"
Как я могу это сделать?