GNU/Linux >> Linux Esercitazione >  >> Linux

6 Aspettatevi esempi di argomenti della riga di comando dello script

Questo articolo spiega le opzioni della riga di comando che possono essere passate a uno script Expect.

Se non ti aspetti un linguaggio di scripting, inizia innanzitutto con il nostro esempio Expect hello world.

1. Esegui lo script Expect dalla riga di comando usando l'opzione -c

Expect ti consente anche di eseguirlo direttamente nella riga di comando usando l'opzione -c come mostrato di seguito.

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

pressed enter
$

Una volta eseguito lo script sopra, attende la nuova riga(\n) e premendo il tasto Invio, stampa il messaggio "Invio premuto" ed esce.

2. Esegui lo script Expect in modo interattivo usando l'opzione -i

Lo script Expect può essere eseguito in modo interattivo leggendo i comandi dallo standard input utilizzando l'opzione -i come mostrato di seguito.

$ expect -i arg1 arg2 arg3
expect1.1>set argv
arg1 arg2 arg3
expect1.2>

Normalmente, quando esegui il comando Expect sopra senza l'opzione -i, tratterebbe arg1 come nome del file di script, quindi l'opzione -i rende l'elenco degli argomenti ininterrotto.

Questa opzione è utile quando si esegue lo script Expect con il flag -c. Perché per impostazione predefinita Expect viene eseguito in modo interattivo.

3. Stampa messaggi di debug durante l'esecuzione di Expect script

Potresti abilitare la stampa dei messaggi di diagnostica quando esegui il codice con l'opzione -d come mostrato di seguito.

$ 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. Abilita il debugger atteso usando -D

L'opzione -D viene utilizzata per abilitare il debugger e prende solo il valore booleano come argomento. Questo indicherà se il debugger deve essere avviato o semplicemente inizializzarlo e usarlo in un secondo momento.

$ expect -D 1 script

Le opzioni prima della sinistra dell'opzione -D verranno elaborate prima del debugger. Quindi i comandi rimanenti verranno eseguiti dopo aver avviato il debugger.

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

5. Esegui lo script Expect riga per riga

Normalmente si aspetta legge l'intero script nella memoria prima di eseguirlo. -b l'opzione prevede di leggere lo script una riga alla volta. Questo potrebbe essere utile quando non hai scritto completamente il file in quel momento e ti aspetti che inizi a eseguirlo e quindi evita la scrittura del file temporaneo.

$ expect -b

6. Fai in modo che gli argomenti della riga di comando non vengano interpretati

Puoi fare in modo che l'aspettativa non interpreti gli argomenti della riga di comando usando — flag.

Normalmente leggeresti gli argomenti della riga di comando come mostrato di seguito.

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

Durante l'esecuzione dello script precedente, passa le opzioni della riga di comando, che verranno trattate come un argomento (invece delle opzioni previste) come mostrato di seguito.

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

Linux
  1. sa Esempi di comandi in Linux

  2. w Esempi di comandi in Linux

  3. ac Esempi di comandi in Linux

  4. Esempi di comandi df in Linux

  5. du Esempi di comandi in Linux

Comando Diff in Linux con esempi

Utilizzo del comando Linux sed con esempi

15 esempi per padroneggiare la cronologia della riga di comando di Linux

15 Esempi pratici di comandi Grep in Linux / UNIX

7 Esempi di comandi Linux df

Esempi di comandi id in Linux