Я написание некоторых ожидаемых команд в 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\" }
}
"
Мои намерения в отношении сценария заключаются в том, чтобы сначала позволить ему подключиться к машине через Telnet, когда он увидит Prompt1, пусть он передаст мне управление, я выполню команду для загрузки определенное изображение. Затем дождитесь появления подсказки 2 (которая указывает на то, что изображение загружено). Затем позвольте ему выполнить дальнейший набор команд.
После запуска скрипта я мог перейти в интерактивный режим и загрузить свое изображение. Проблема в том, чтобы выйти из интерактивного режима на удаленном компьютере и вернуть ему управление.
Ошибка, которую я получил:
expect: spawn id exp4 not open
while executing
"expect -nobrace Prompt2 {send "dir\r" }"
invoked from within
"expect {
Prompt2 {send "dir\r" }
}"
Как я могу это сделать?