O tempo limite configurado altera cada instrução expect, ou apenas o final esperado eof?

0

Estou aprendendo a usar /usr/bin/expect pela primeira vez, para automatizar o pesadelo que está instalando o fink a partir da origem, pois esse script tem algumas dúzias de prompts, e todos podem ser respondidos com a tecla Enter. O problema é que uma seção do roteiro leva cerca de 30 minutos, enquanto a última parte leva cerca de 10 minutos. Não tenho certeza se set timeout 1800 ou set timeout 600 . Basicamente, eu quero saber se set timeout efetua o tempo limite para cada instrução expect "..." , ou se afeta somente o% finalexpect eof.

Eu poderia configurar isso de forma conservadora e apenas ir com set timeout 1800 , mas acho que se a semântica do esperado é sobre o último eof aqui, é melhor selecionar um tempo de espera mais específico lá.

Sei que também posso usar o set timeout -1 , mas esse script de espera deve ser executado por servidores de IC e não quero que eles sejam bloqueados indefinidamente.

    
por mcandre 20.12.2017 / 06:07

1 resposta

2

set timeout afeta o tempo limite para cada instrução expect . No entanto, você pode fornecer um valor de substituição explícito em qualquer um deles:

expect -timeout 100 ...

Observe também que set timeout dentro de uma função proc somente o configurará para o escopo local dessa função, não afetando o valor de tempo limite global.

    
por 20.12.2017 / 14:20