Consejos para el uso flexible de los scripts de expectativa bajo Linux

  

Para los administradores de sistemas Linux a los que les gusta la automatización, se debe usar la herramienta de línea de comandos. Don Libes ha desarrollado Expect basado en el lenguaje Tcl y se usa ampliamente en operaciones interactivas y escenarios de prueba automatizados. Es especialmente adecuado para entornos que necesitan realizar las mismas operaciones en varios servidores, lo que puede mejorar enormemente a los administradores de sistemas. Eficiencia en el trabajo. Este artículo es un artículo compartido técnicamente recientemente actualizado por thegeekstuff.com, que detalla cómo ejecutar un script de expectativa con diferentes opciones de línea de comando. ¿Cuál es el uso? Puedes usar libremente tu imaginación.

Este artículo asume que está familiarizado con el uso básico de expect.

Si eres nuevo en el lenguaje de scripting de expectativa, puedes comenzar con el ejemplo de "hola mundo" de Expect.

1. Use la opción " -c " para ejecutar el script de espera desde la línea de comandos.

espere que use la opción " -c " para ejecutarla directamente desde la línea de comandos, de la siguiente manera Mostrar:

$ expect -c 'expect " \\ n " {enviar " presionado enter \\ n "}

presionado enter

$

Si ejecuta el script anterior, esperará un carácter de nueva línea (\\ n). Después de presionar el botón " enter ", se imprimirá el mensaje “" presionado enter " y saldrá.

2, use la opción " -i " para ejecutar interactivamente el script expect.

Usando la opción " -i ", puede ejecutar interactivamente el script expect con un comando de lectura desde la entrada estándar. Como se muestra a continuación:

$ expect -i arg1 arg2 arg3

expect1.1 > set argv

arg1 arg2 arg3

expect1.2 >

Normalmente, cuando ejecuta el comando expect (arriba) (no hay ninguna opción " -i "), tratará arg1 como el nombre de archivo del script, por lo que la opción " -i " permite que el script tenga múltiples Los parámetros son tratados como una lista continua.

Esta opción es útil cuando ejecuta la secuencia de comandos expect con la opción " -c " Porque de forma predeterminada, espera se ejecuta de forma interactiva.

3, al ejecutar el script expect, la información de depuración de salida

Cuando ejecuta el código con la opción " -d ", puede generar información de diagnóstico. Como se muestra a continuación:

$ cat sample.exp

#! /Usr /bin /expect -fexpect " \\ n "; enviar " presionado intro "; $ expect -d sample. Espere la versión 5.43.0argv [0] = expect argv [1] = -d argv [2] = sample.expset argc 0set argv0 > sample.exp " set argv " " ejecute comandos desde el archivo de comandos sample.exp

expect: hace que " (quot; spawn_id exp0) coincida con el patrón global " \\ n "? no

expect: hace " \\ n " (spawn_id exp0) que coincida con el patrón global " \\ n "? sí

expect: set expect_out (0, string) " \\ n "

expect: set expect_out (spawn_id) " exp0 "

expect: set expect_out (búfer) " \\ n "

enviar: enviando " pulsado intro " a {exp0 pulsado intro}

4, use la opción " -D " para iniciar el depurador de espera
La opción

" -D " se usa para iniciar el depurador, que solo acepta un parámetro booleano. Este parámetro indica si el activador de solicitudes debe iniciarse inmediatamente, o simplemente inicializar el depurador y usarlo más tarde.

$ expect -D 1 script

" -D " Las opciones a la izquierda de la opción se procesan antes de que se inicie el depurador. Luego, después de que se inicie el depurador, se ejecutarán los comandos restantes.

$ expect -c 'set timeout 10' -D 1 -c 'set a 1'

1: configura a 1

dbg1.0 >

5, ejecute el script de espera línea por línea

Por lo general, espera leerá todo el script en la memoria antes de ejecutar el script. La opción " -b " permite leer solo una línea del script a la vez. Esto es muy útil cuando no está escribiendo un script completo. Expect puede comenzar a ejecutar este script incompleto y puede evitar escribir scripts en archivos temporales.

$ expect -b

6. Deje que no espere interpretar los argumentos de la línea de comandos

Puede usar identificadores para no esperar que se interpreten los argumentos de la línea de comandos.

Puedes leer los argumentos de la línea de comandos como este:

$ cat print_cmdline_args.exp

#! /usr /bin /expect

puts 'argv0: [lindex $ argv 0]';

pone 'argv1: [lindex $ argv 1]';

Al ejecutar el script anterior, las opciones de la línea de comandos se omiten. Se tratan como argumentos (en lugar de la opción esperada) de la siguiente manera:

$ expect print_cmdline_args.exp -d -c

argv0: -d

argv1: - c

Copyright © Conocimiento de Windows All Rights Reserved