Estou tentando automatizar a implantação de um contêiner Docker. Três prompts precisam ser preenchidos manualmente para prosseguir com a implantação. No entanto, eles não devem ser preenchidos um após o outro. A ordem em que esses campos aparecem é muito estranha. Primeiro ele pede uma senha e uma confirmação (dois campos um após o outro). Então, o script OpenVPN faz seu trabalho e precisa de um FQDN para gerar um certificado, acredito.
Portanto, gostaria de saber se posso dizer expect
para preencher o valor X para o campo X e, quando o campo de entrada Y aparecer, preencha o valor Y. Em outras palavras, posso dizer expect
para reconhecer automaticamente os prompts de entrada e preenchê-los de acordo?
Certamente, é para isso que serve a expectativa. O
exp_continue
comando é a chave aqui:Claro que você terá que alterar os padrões citados para que correspondam ao seu caso real.
Com essa estrutura, os padrões podem corresponder em qualquer ordem. Os padrões nem precisam aparecer.
Quando "algum outro padrão" é visto, uma vez que não há nenhum bloco de ação associado a ele, ele aciona o fim do comando expect abrangente e o restante do script pode continuar.
Para poder controlar um processo, você deve iniciar esse processo de dentro do expect. Tente isto: