Trabalhando com o comando expect

0

Eu tenho um script de instalação que fornece o seguinte prompt:

Por favor, digite uma seleção ou pressione "Enter" para aceitar a opção padrão [1]:

Eu não posso esperar pegar isso. Eu tentei brincar com os equates ao redor de Enter, mas nada parece funcionar.

Qualquer ideia seria bem-vinda

    
por Yair 26.02.2018 / 07:44

1 resposta

1

Existem dois tipos de problemas ao tentar corresponder cadeias como "[1]" .

Em primeiro lugar, expect usa tcl strings e [] são caracteres especiais dentro de aspas duplas, então você precisa escapar deles com \[ ou usar as chaves de concha {} .

Em segundo lugar, os padrões expect são, por padrão, padrões glob, portanto, [abc] significa corresponder a um caractere a, b ou c. Então você precisa escapar o [ uma segunda vez, ou você pode usar a opção -ex para dizer que você não quer usar um glob, mas uma string exata.

Portanto, o comando resultante que deve funcionar é

expect -ex {default choice [1]:}
    
por 26.02.2018 / 10:22

Tags