O tempo limite não funciona no script de espera

1

Criei o seguinte script de espera para automatizar o logon em uma VPN:

 #!/usr/bin/expect

 set PASS [lindex $argv 0]

 set timeout 10
 spawn  vpnc
 expect    :            {send $PASS\r}
 expect eof

No entanto, quando dou um argumento de senha errado, os 10 segundos esperados não ocorrem.

Por que esse tempo limite de 10 segundos não ocorre?

THE_BIG_EXPERT
fonte

Respostas:

1

Eu esperaria explicitamente o tempo limite:

set timeout 10
spawn  vpnc
expect :
send [lindex $argv 0]\r
expect {
    timeout {error "incorrect password"; exit 1}
    eof
}
Glenn Jackman
fonte
então qual é o ponto? , como você resolve isso? , onde eu estou errado?
THE_BIG_EXPERT
1
Suponho que, enquanto você espera "eof", quando ocorre o tempo limite, seu script não faz nada com ele. Você testou meu código? Obviamente, "o ponto" é que estou tentando ajudá-lo com seu problema. O que você vai fazer com meus esforços?
glenn jackman
ok vou verificar a sua solução na minha máquina ,, retornarei assim que for dar o que aconteceu - :) #
THE_BIG_EXPERT
VOTE PARA VOCÊ SUAS OBRAS
THE_BIG_EXPERT