GNU/Linux >> Tutoriels Linux >  >> Linux

6 Attendez-vous à des exemples d'arguments de ligne de commande de script

Cet article explique les options de ligne de commande qui peuvent être passées à un script expect.

Si vous ne connaissez pas encore le langage de script, commencez par notre exemple expect hello world.

1. Exécutez le script expect à partir de la ligne de commande en utilisant l'option -c

expect vous permet également de l'exécuter directement dans la ligne de commande en utilisant l'option -c comme indiqué ci-dessous.

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

pressed enter
$

Une fois que vous avez exécuté le script ci-dessus, il attend la nouvelle ligne (\n) et en appuyant sur la touche Entrée, il imprimera le message "entrée enfoncée" et sortira.

2. Exécutez le script expect de manière interactive à l'aide de l'option -i

Le script Expect peut s'exécuter de manière interactive en lisant les commandes à partir de l'entrée standard à l'aide de l'option -i, comme indiqué ci-dessous.

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

Normalement, lorsque vous exécutez la commande expect ci-dessus sans l'option -i, elle traite arg1 comme un nom de fichier de script, de sorte que l'option -i rend la liste d'arguments ininterrompue.

Cette option est utile lorsque vous exécutez le script expect avec l'indicateur -c. Parce que par défaut, expect s'exécute de manière interactive.

3. Afficher les messages de débogage lors de l'exécution du script expect

Vous pouvez activer l'impression des messages de diagnostic lorsque vous exécutez le code avec l'option -d comme indiqué ci-dessous.

$ 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. Activer le débogueur attendu avec -D

L'option -D est utilisée pour activer le débogueur et prend simplement la valeur booléenne comme argument. Cela indiquera si le débogueur doit être démarré ou simplement initialisé et utilisé ultérieurement.

$ expect -D 1 script

Les options avant la gauche de l'option -D seront traitées avant le débogueur. Ensuite, les commandes restantes seront exécutées après le démarrage du débogueur.

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

5. Exécute le script attendu ligne par ligne

Attendez-vous normalement à lire le script entier dans la mémoire avant de l'exécuter. L'option -b permet de s'attendre à lire le script une ligne à la fois. Cela peut être utile lorsque vous n'avez pas complètement écrit le fichier à ce moment-là et que vous vous attendez à commencer à l'exécuter, ce qui évite l'écriture d'un fichier temporaire.

$ expect -b

6. Faire en sorte que les arguments de la ligne de commande ne soient pas interprétés

Vous pouvez faire en sorte que expect n'interprète pas les arguments de la ligne de commande en utilisant — flag.

Normalement, vous lirez les arguments de la ligne de commande comme indiqué ci-dessous.

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

Lors de l'exécution du script ci-dessus, transmettez les options de ligne de commande, qui seront traitées comme un argument (au lieu des options attendues) comme indiqué ci-dessous.

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

Linux
  1. 7 Exemples de commandes Linux df

  2. 8 Exemples de commandes Linux TR

  3. Exemples de commande rm sous Linux

  4. Exemples de commandes ps sous Linux

  5. ac Exemples de commandes sous Linux

Commande Diff sous Linux avec exemples

Comment passer un argument de ligne de commande dans un script shell ?

Utilisation de la commande Linux sed avec des exemples

15 exemples pratiques de commande Grep sous Linux / UNIX

Exemples de commandes id sous Linux

Comment passer un argument dans Expect via la ligne de commande dans un script shell