autoexpect: en línea en la nube

Este es el comando autoexpect que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


autoexpect: genera un script de Expect a partir de ver una sesión

SINOPSIS


esperar automáticamente [ args ] [ programa argumentos ... ]

INTRODUCCIÓN


autoexpect lo observa interactuando con otro programa y crea un script de Expect que
reproduce sus interacciones. Para scripts de línea recta, autoexpect ahorra mucho tiempo
sobre la escritura de guiones a mano. Incluso si eres un experto en Expect, lo encontrarás
conveniente utilizar autoexpect para automatizar las partes más inconscientes de las interacciones. Está
mucho más fácil cortar / pegar trozos de scripts de autoexpección juntos que escribirlos desde
rasguño. Y si eres un principiante, es posible que puedas salirte con la tuya sin aprender nada.
más sobre Expect que sobre cómo llamar a autoexpect.

La forma más sencilla de utilizar autoexpect es llamarlo desde la línea de comandos sin argumentos.
Por ejemplo:

% de autoespera

De forma predeterminada, autoexpect genera un shell para usted. Dado un nombre de programa y argumentos,
autoexpect genera ese programa. Por ejemplo:

% espera automática ftp ftp.cme.nist.gov

Una vez que su programa generado se esté ejecutando, interactúe normalmente. Cuando hayas salido del caparazón
(o programa que haya especificado), autoexpect creará un nuevo script para usted. Por defecto,
autoexpect escribe el nuevo script en "script.exp". Puede anular esto con la bandera -f
seguido de un nuevo nombre de secuencia de comandos.

El siguiente ejemplo ejecuta "ftp ftp.cme.nist.gov" y almacena el script Expect resultante.
en el archivo "nist".

% autoexpect -f nist ftp ftp.cme.nist.gov

Es importante comprender que autoexpect no garantiza un script que funcione porque
necesariamente tiene que adivinar ciertas cosas y, en ocasiones, adivina mal.
Sin embargo, suele ser muy fácil identificar y solucionar estos problemas. Los problemas típicos
son:

· Momento. Una cantidad sorprendentemente grande de programas (rn, ksh, zsh, telnet, etc.)
y los dispositivos (p. ej., módems) ignoran las pulsaciones de teclas que llegan "demasiado rápido" después
indicaciones. Si encuentra su nuevo script colgando en un lugar, intente agregar un
sueño breve justo antes del envío anterior.

Puede forzar este comportamiento anulando la variable
"force_conservative" cerca del comienzo del script generado. Esta
El modo "conservador" hace que la expectativa automática se pause automáticamente brevemente (una décima
un segundo) antes de enviar cada carácter. Esto pacifica todos los programas que conozco
de.

Este modo conservador es útil si solo desea tranquilizarse rápidamente
que el problema es de sincronización (o si realmente no te importa qué tan rápido
el script se ejecuta). Este mismo modo se puede forzar antes de la generación del script mediante
usando la bandera -c.

Afortunadamente, estos puntos de sincronización son raros. Por ejemplo, telnet ignora
caracteres solo después de ingresar su secuencia de escape. Los módems solo ignoran
personajes inmediatamente después de conectarse a ellos por primera vez. Unos pocos
Los programas exhiben este comportamiento todo el tiempo, pero normalmente tienen un cambio a
desactivarlo. Por ejemplo, la bandera -T de rn deshabilita este comportamiento.

El siguiente ejemplo inicia autoexpect en modo conservador.

esperar automáticamente -c

La bandera -C define una tecla para alternar el modo conservador. El siguiente ejemplo
inicia autoexpect (en modo no conservador) con ^ L como alternancia. (Tenga en cuenta que
la ^ L se ingresa literalmente, es decir, ingrese un control real-L).

autoexpect -C ^ L

El siguiente ejemplo inicia autoexpect en modo conservador con ^ L como
palanca.

autoexpect -c -C ^ L

· Haciendo eco. Muchos programas hacen eco de caracteres. Por ejemplo, si escribe "más" en un
shell, lo que autoexpect realmente ve es:

escribiste 'm',
computadora escribió 'm',
escribiste 'o',
computadora escribió 'o',
escribiste 'r',
computadora escribió 'r',
...

Sin un conocimiento específico del programa, es imposible saber si estás
esperando ver el eco de cada carácter antes de escribir el siguiente. Si es autoexpect
ve que los personajes se repiten, asume que puede enviarlos a todos como un grupo
en lugar de intercalarlos de la forma en que aparecieron originalmente. Esto hace que el
guión más agradable de leer. Sin embargo, posiblemente podría ser incorrecto si
realmente tenías que esperar para ver el eco de cada personaje.

· Cambio. Autoexpect registra todos los personajes de la interacción en el guión.
Esto es deseable porque le da la capacidad de emitir juicios sobre
qué es importante y qué se puede reemplazar con una coincidencia de patrón.

Por otro lado, si usa comandos cuya salida difiere de una ejecución a otra,
los scripts generados no van a ser correctos. Por ejemplo, la "fecha"
El comando siempre produce una salida diferente. Entonces, usando el comando de fecha mientras
ejecutar autoexpect es una forma segura de producir un script que requerirá edición
para que funcione.

La bandera -p pone autoexpect en "modo de solicitud". En este modo, autoexpect
sólo busque la última línea de salida del programa, que suele ser la
inmediato. Esto maneja el problema de la fecha (ver arriba) y la mayoría de los demás.

El siguiente ejemplo inicia autoexpect en modo de solicitud.

esperar automáticamente -p

La bandera -P define una tecla para alternar el modo de solicitud. El siguiente ejemplo comienza
autoexpect (en modo sin solicitud) con ^ P como alternar. Tenga en cuenta que ^ P es
ingresado literalmente, es decir, ingrese un control real-P.

autoexpect -P ^ P

El siguiente ejemplo inicia autoexpect en el modo de solicitud con ^ P como alternancia.

autoexpect -p -P ^ P

OTROS BANDERAS


La -tranquilo flag deshabilita los mensajes informativos producidos por autoexpect.

La -Q la bandera nombra un carácter de comillas que se puede usar para ingresar caracteres que se esperan automáticamente
de lo contrario consumiría porque se utilizan como conmutadores.

El siguiente ejemplo muestra una serie de banderas con comillas utilizadas para proporcionar una forma de ingresar
los alterna literalmente.

espera automática -P ^ P -C ^ L -Q ^ Q

ESTILO


No sé si hay un "estilo" para los programas Expect, pero autoexpect definitivamente debería
no se puede sostener como un modelo de estilo. Por ejemplo, autoexpect usa características de Expect
que están diseñados específicamente para secuencias de comandos generadas por computadora. Así que no intentes
escriba fielmente scripts que parezcan haber sido generados por autoexpect. Esto no es
útil.

Por otro lado, los scripts de autoexpect muestran algunas cosas que valen la pena. Por ejemplo tu
puede ver cómo se debe citar cualquier cadena para usarla en un script Tcl simplemente ejecutando
las cadenas a través de autoexpect.

Use autoexpect en línea usando los servicios de onworks.net



Últimos programas en línea de Linux y Windows