GNU/Linux >> Znalost Linux >  >> Linux

6 Očekávejte příklady argumentů příkazového řádku skriptu

Tento článek vysvětluje možnosti příkazového řádku, které lze předat očekávanému skriptu.

Pokud jste novým očekáváním skriptovacího jazyka, začněte nejprve naším příkladem očekávejte ahoj světe.

1. Spusťte očekávaný skript z příkazového řádku pomocí volby -c

expect také umožňuje spouštět jej přímo v příkazovém řádku pomocí volby -c, jak je ukázáno níže.

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

pressed enter
$

Jakmile výše uvedený skript spustíte, počká na nový řádek (\n) a po stisknutí klávesy enter vytiskne zprávu „stisknuto enter“ a ukončí se.

2. Interaktivně spusťte skript očekávání pomocí volby -i

Skript Expect se může spouštět interaktivně čtením příkazů ze standardního vstupu pomocí volby -i, jak je uvedeno níže.

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

Normálně, když spustíte výše uvedený příkaz expect bez volby -i, bude arg1 považovat za název souboru skriptu, takže volba -i způsobí, že seznam argumentů bude nepřerušený.

Tato volba je užitečná, když spouštíte očekávaný skript s parametrem -c. Protože ve výchozím nastavení očekávejte, že se spustí interaktivně.

3. Tisk ladicích zpráv při provádění očekávaného skriptu

Můžete povolit tisk diagnostických zpráv, když spustíte kód s volbou -d, jak je uvedeno níže.

$ 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. Povolte očekávaný ladicí program pomocí -D

Volba -D se používá k povolení ladicího programu a jako argument bere pouze booleovskou hodnotu. To bude indikovat, zda je třeba spustit ladicí program, nebo jej pouze inicializovat a použít později.

$ expect -D 1 script

Volby před levou stranou volby -D budou zpracovány před debuggerem. Poté budou zbývající příkazy provedeny po spuštění ladicího programu.

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

5. Spustit očekávaný skript řádek po řádku

Normálně očekávejte načtení celého skriptu do paměti před jeho provedením. Volba -b znamená, že se očekává, že bude skript číst jeden řádek po druhém. To by mohlo být užitečné, když jste do té doby nezapsali celý soubor a očekáváte, že se spustí, a tím se vyhnete zápisu dočasného souboru.

$ expect -b

6. Vytvořte argumenty příkazového řádku, které nebudou interpretovány

Pomocí parametru — flag můžete očekávat, že nebude interpretovat argumenty příkazového řádku.

Normálně byste si přečetli argumenty příkazového řádku, jak je uvedeno níže.

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

Při provádění výše uvedeného skriptu předejte možnosti příkazového řádku, se kterými bude zacházeno jako s argumentem (místo očekávaných možností), jak je uvedeno níže.

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

Linux
  1. sa Příklady příkazů v Linuxu

  2. w Příklady příkazů v Linuxu

  3. Jak předat argument v Expect přes příkazový řádek v shell skriptu

  1. Jak předat argument příkazového řádku do skriptu Shell?

  2. Předat argumenty příkazového řádku skriptu Bash?

  3. matlab spustí skript z příkazové řádky linuxu

  1. 15 Příklady pro zvládnutí historie příkazového řádku Linuxu

  2. 7 Příklady příkazů Linux df

  3. 8 Příklady příkazů Linux TR