GNU/Linux >> Linux Esercitazione >  >> Linux

Come passare l'argomento in Expect tramite la riga di comando in uno script di 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

Se vuoi leggere dagli argomenti, puoi farlo semplicemente con

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

E stampalo

send_user "$username $password"

Quello script verrà stampato

$ ./test.exp user1 pass1
user1 pass1

Puoi utilizzare la modalità Debug

$ ./test.exp -d user1 pass1

Un modo migliore potrebbe essere questo:

lassign $argv arg1 arg2 arg3

Tuttavia, anche il tuo metodo dovrebbe funzionare. Controlla che arg1 viene recuperato. Ad esempio, con send_user "arg1: $arg1\n" .


Linux
  1. Alias ​​della riga di comando nella shell di Linux

  2. Come assegnare l'output di un comando a una variabile di shell?

  3. Passare gli argomenti della riga di comando allo script Bash?

  4. 6 Aspettatevi esempi di argomenti della riga di comando dello script

  5. Come installo uno script da eseguire ovunque dalla riga di comando?

Linux:come masterizzare un CD/DVD tramite la riga di comando

Come impostare il browser predefinito su Debian tramite la riga di comando

Come memorizzare un comando Linux come variabile nello script della shell

Come impostare il browser predefinito dalla riga di comando?

Come eseguire un comando in uno script della shell?

Come leggere gli argomenti della riga di comando negli script della shell?