Estoy escribiendo algunos comandos de espera en bash.¿Cómo puedo esperar que haya terminado el modo interactivo?
Guión:
#!/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\" }
}
"
Mis intenciones con el guión son, en primer lugar dejar que telnet en una máquina, cuando se ve PROMPT1, dejar que se dan el control a mí, voy a ejecutar un comando para cargar una imagen específica . Luego espere hasta que se muestre Prompt2 (que indica que la imagen se ha cargado). Entonces deja que ejecute el conjunto adicional de comandos.
Después de ejecutar el script, pude entrar en el modo interactivo, cargar mi imagen. El problema es salir del modo interactivo en la máquina remota y devolverle el control.
el error que llegué:
expect: spawn id exp4 not open
while executing
"expect -nobrace Prompt2 {send "dir\r" }"
invoked from within
"expect {
Prompt2 {send "dir\r" }
}"
¿Cómo puedo hacer esto?
¿Cómo piensa salir del modo interacción? ¿Es esto esperando 'prompt2'? –
El valor de tiempo de espera de 20, supuse que me sacaría. ¿Me equivoco aquí? Una vez que salga, quiero que Espere retome el control y espere la Prompt2. Entonces puede ejecutar el conjunto adicional de comandos. – Pkp