Skip to content

O comando Linux / Unix espera

6 de abril de 2021

O comando Linux Espero fala com outros programas interativos de acordo com um script. Seguindo o roteiro, Espero sabe o que pode ser “esperado” de um programa e qual deve ser a resposta correta. Uma linguagem interpretada fornece ramificações e estruturas de controle de alto nível para direcionar o diálogo. Além disso, o usuário pode assumir o controle e interagir diretamente quando desejar, depois retornando o controle ao script. O nome Espero vem da ideia de enviar / esperar sequências popularizadas por uucp, Sapoe outros programas de controle de modem. No entanto, ao contrário uucp, Espero é generalizado para que possa ser executado como um comando de nível de usuário com qualquer programa e tarefa em mente.

Roy Scott / Getty Images

O que o Expect pode fazer

Por exemplo, aqui estão algumas coisas que o comando expect pode fazer:

  • Sinalize seu computador para discar de volta para que você possa fazer o login sem pagar pela chamada.
  • Inicie um jogo e, se a configuração ideal não aparecer, reinicie-o várias vezes até que apareça e, em seguida, passe o controle para você.
  • Corre fsck, e em resposta às suas perguntas, responda sim ou não ou devolver o controle a você, com base em critérios predeterminados.
  • Conecte-se a outra rede e recupere automaticamente seu e-mail para que pareça ter sido enviado originalmente para o seu sistema local.
  • Carrega variáveis ​​de ambiente, diretório atual ou qualquer tipo de informação em rlogin, telnet, gorjeta, su, ou chgrp.

Existem vários motivos pelos quais o shell não pode executar essas tarefas. Todos são possíveis com Espero.

Uso

Expectk é uma mistura de Espero e Tk. Se comporta exatamente como Espero e Tk’s desejar. Expect também pode ser usado diretamente em C ou C ++ sem Tcl. O comando aceita a seguinte forma geral: esperar [options] cmdfile

Espero cmdfile para obter uma lista de comandos a serem executados. Expect pode ser invocado implicitamente em sistemas que suportam o #! notação marcando o script como executável e criando a primeira linha no script: #! / usr / local / bin / expect -f

Claro, o caminho deve descrever com precisão onde Espero vidas; / usr / local / bin é apenas um exemplo. O -c flag prefacia um comando a ser executado antes de qualquer um no script. O comando deve ser citado para evitar que seja interrompido pelo shell. Vários comandos podem ser executados com um único -c separando-os com ponto e vírgula. Os comandos são executados na ordem em que aparecem. Ao usar expectk, esta opção é especificada como -comando. O -d sinalizador ativa alguma saída de diagnóstico, que relata principalmente a atividade interna de comandos como esperar e interagir. O -D flag ativa um depurador interativo. Um valor inteiro deve seguir. O depurador assumirá o controle antes do próximo procedimento Tcl se o valor for diferente de zero ou se um Ctrl + C é pressionado ou um ponto de interrupção é atingido, ou outro comando de depurador apropriado aparece no script. O -f flag prefacia um arquivo a partir do qual os comandos serão lidos. O sinalizador em si é opcional, pois só é útil ao usar o #! notação, para que outros argumentos possam ser fornecidos na linha de comando. Por padrão, o arquivo de comando é lido na memória e executado em sua totalidade. Ocasionalmente, é desejável ler os arquivos uma linha de cada vez. Para forçar arquivos arbitrários a serem tratados dessa forma, use o -b bandeira. O -eu sinalizador faz com que Espere solicitar comandos interativamente em vez de lê-los de um arquivo. A solicitação é encerrada por meio do comando de saída ou no EOF. O sinalizador -i é assumido se nem um arquivo de comando nem -c for usado. O comando oferece suporte a várias opções adicionais. Consulte a página de manual para Espero para orientação adicional e notas de uso.