GNU/Linux >> LINUX-Kenntnisse >  >> Linux

6 Beispiele für Script-Befehlszeilenargumente

Dieser Artikel erläutert die Befehlszeilenoptionen, die an ein Expect-Skript übergeben werden können.

Wenn Sie noch keine Erfahrung mit der Skriptsprache haben, beginnen Sie zunächst mit unserem Beispiel „Erwarte die Welt“.

1. Führen Sie das Expect-Skript von der Befehlszeile mit der Option -c

aus

Außerdem können Sie Expect auch direkt in der Befehlszeile mit der Option -c ausführen, wie unten gezeigt.

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

pressed enter
$

Sobald Sie das obige Skript ausgeführt haben, wartet es auf den Zeilenumbruch (\n) und beim Drücken der Eingabetaste wird die Meldung „Pressed Enter“ ausgegeben und beendet.

2. Erwarte das Skript interaktiv mit der Option -i

Das Expect-Skript kann interaktiv ausgeführt werden, indem Befehle aus der Standardeingabe mit der Option -i gelesen werden, wie unten gezeigt.

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

Wenn Sie den obigen Expect-Befehl normalerweise ohne die Option -i ausführen, würde er arg1 als Skriptdateinamen behandeln, sodass die Option -i die Argumentliste als ununterbrochen macht.

Diese Option ist nützlich, wenn Sie das Expect-Skript mit dem Flag -c ausführen. Weil erwartet standardmäßig interaktiv ausgeführt wird.

3. Gibt während der Ausführung des Expect-Skripts Debug-Meldungen aus

Sie können das Drucken der Diagnosemeldungen aktivieren, wenn Sie den Code wie unten gezeigt mit der Option -d ausführen.

$ 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. Aktivieren Sie den Expect-Debugger mit -D

Die Option -D wird verwendet, um den Debugger zu aktivieren, und nimmt nur den booleschen Wert als Argument. Dies zeigt an, ob der Debugger gestartet oder nur initialisiert und zu einem späteren Zeitpunkt verwendet werden muss.

$ expect -D 1 script

Die Optionen links von der Option -D werden vor dem Debugger verarbeitet. Dann werden die restlichen Befehle nach dem Start des Debuggers ausgeführt.

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

5. Erwarte Skript Zeile für Zeile ausführen

Normalerweise liest Expect das gesamte Skript in den Speicher, bevor es ausgeführt wird. Die Option -b lässt erwarten, dass das Skript Zeile für Zeile gelesen wird. Dies könnte nützlich sein, wenn Sie die Datei zu diesem Zeitpunkt noch nicht vollständig geschrieben haben und erwarten, dass sie ausgeführt wird, und somit das Schreiben einer temporären Datei vermieden wird.

$ expect -b

6. Machen Sie Befehlszeilenargumente so, dass sie nicht interpretiert werden

Sie können den Expect dazu bringen, die Befehlszeilenargumente nicht zu interpretieren, indem Sie — flag verwenden.

Normalerweise würden Sie die Kommandozeilenargumente wie unten gezeigt lesen.

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

Übergeben Sie beim Ausführen des obigen Skripts die Befehlszeilenoptionen, die wie unten gezeigt wie ein Argument behandelt werden (anstelle von Erwartungsoptionen).

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

Linux
  1. sa-Befehlsbeispiele in Linux

  2. ac-Befehlsbeispiele in Linux

  3. df-Befehlsbeispiele in Linux

  4. du-Befehlsbeispiele in Linux

  5. dnf-Befehlsbeispiele

Diff-Befehl in Linux mit Beispielen

Verwendung des Linux-Befehls sed mit Beispielen

15 Praktische Grep-Befehlsbeispiele in Linux / UNIX

7 Beispiele für Linux-df-Befehle

8 Linux TR-Befehlsbeispiele

id-Befehlsbeispiele in Linux