GNU/Linux >> Tutoriales Linux >  >> Linux

6 Ejemplos de argumentos de línea de comando de secuencia de comandos esperada

Este artículo explica las opciones de la línea de comandos que se pueden pasar a un script de expectativa.

Si es la primera vez que espera un lenguaje de secuencias de comandos, primero comience con nuestro ejemplo de esperar hola mundo.

1. Ejecute el script de expectativa desde la línea de comando usando la opción -c

expect también le permite ejecutarlo directamente en la línea de comando usando la opción -c como se muestra a continuación.

$ expect -c 'expect "\n" {send "pressed enter\n"}

pressed enter
$

Una vez que ejecuta el script anterior, espera la nueva línea (\n) y al presionar la tecla Intro, imprimirá el mensaje "pulsó Intro" y sale.

2. Ejecute el script de expectativa de forma interactiva usando la opción -i

La secuencia de comandos Expect puede ejecutarse de forma interactiva al leer los comandos de la entrada estándar usando la opción -i 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 anterior sin la opción -i, trataría el arg1 como un nombre de archivo de secuencia de comandos, por lo que la opción -i hace que la lista de argumentos no se vea interrumpida.

Esta opción es útil cuando ejecuta el script expect con el indicador -c. Porque, de forma predeterminada, la expectativa se ejecuta de forma interactiva.

3. Imprima mensajes de depuración mientras ejecuta el script de expectativa

Puede habilitar la impresión de los mensajes de diagnóstico cuando ejecuta el código con la opción -d como se muestra a continuación.

$ cat sample.exp
# !/usr/bin/expect -f
expect "\n";
send "pressed enter";

$ expect -d sample.exp
expect version 5.43.0
argv[0] = expect  argv[1] = -d  argv[2] = sample.exp
set argc 0
set argv0 "sample.exp"
set argv ""
executing commands from command file sample.exp

expect: does "" (spawn_id exp0) match glob pattern "\n"? no

expect: does "\n" (spawn_id exp0) match glob pattern "\n"? yes
expect: set expect_out(0,string) "\n"
expect: set expect_out(spawn_id) "exp0"
expect: set expect_out(buffer) "\n"
send: sending "pressed enter" to { exp0 pressed enter}

4. Habilite esperar depurador usando -D

La opción -D se usa para habilitar el depurador y solo toma el valor booleano como argumento. Esto indicará si se debe iniciar el depurador o simplemente inicializarlo y usarlo más adelante.

$ expect -D 1 script

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

$ expect -c 'set timeout 10' -D 1 -c 'set a 1'
1: set a 1
dbg1.0>

5. Ejecutar guión de espera línea por línea

Normalmente espera leer el script completo en la memoria antes de ejecutarlo. La opción -b hace que se espere leer el script una línea a la vez. Esto podría ser útil cuando no ha escrito el archivo completamente en ese momento y espera que comience a ejecutarse y, por lo tanto, evite la escritura de un archivo temporal.

$ expect -b

6. Haga que los argumentos de la línea de comandos no se interpreten

Puede hacer que la expectativa no interprete los argumentos de la línea de comando usando — flag.

Normalmente leería los argumentos de la línea de comando como se muestra a continuación.

$ cat  print_cmdline_args.exp
#!/usr/bin/expect
puts 'argv0 : [lindex $argv 0]';
puts 'argv1 : [lindex $argv 1]';

Mientras ejecuta el script anterior, pase las opciones de la línea de comandos, que se tratarán como un argumento (en lugar de esperar opciones) como se muestra a continuación.

$ expect print_cmdline_args.exp -d -c
argv0 : -d
argv1 : -c

Linux
  1. 7 ejemplos de comandos Linux df

  2. 8 ejemplos de comandos TR de Linux

  3. Ejemplos de comandos rm en Linux

  4. Ejemplos de comandos ps en Linux

  5. Ejemplos de comandos dnf

Comando Diff en Linux con ejemplos

¿Cómo pasar un argumento de línea de comando a un script de Shell?

Uso del comando sed de Linux con ejemplos

15 ejemplos prácticos de comandos Grep en Linux / UNIX

Ejemplos de comandos id en Linux

Ejemplos de comandos du en Linux