GNU/Linux >> Tutoriels Linux >  >> Linux

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

#!/usr/bin/expect
set username [lindex $argv 0]
set password [lindex $argv 1]
log_file -a "/tmp/expect.log"
set timeout 600
spawn /anyscript.sh
expect "username: " { send "$username\r" }
expect "password: " { send "$password\r" }
interact

Si vous voulez lire des arguments, vous pouvez y parvenir simplement en

set username [lindex $argv 0];
set password [lindex $argv 1];

Et imprimez-le

send_user "$username $password"

Ce script s'imprimera

$ ./test.exp user1 pass1
user1 pass1

Vous pouvez utiliser le mode débogage

$ ./test.exp -d user1 pass1

Une meilleure façon pourrait être celle-ci :

lassign $argv arg1 arg2 arg3

Cependant, votre méthode devrait également fonctionner. Vérifiez que arg1 est récupéré. Par exemple, avec send_user "arg1: $arg1\n" .


Linux
  1. Alias ​​de ligne de commande dans le shell Linux

  2. Comment affecter la sortie d'une commande à une variable Shell ?

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

  4. Comment passer un argument de ligne de commande lors du démarrage de GDB sous Linux ?

  5. Linux :définir la date via la ligne de commande

Linux :comment graver un CD/DVD via la ligne de commande

Comment définir le navigateur par défaut sur Debian via la ligne de commande

Comment stocker une commande Linux en tant que variable dans un script shell

Comment définir le navigateur par défaut à partir de la ligne de commande ?

Comment exécuter une commande dans un script shell ?

Comment lire les arguments de ligne de commande dans les scripts shell ?