GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo pasar un argumento en Expect a través de la línea de comando en un script de 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 desea leer argumentos, puede lograrlo simplemente

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

E imprimirlo

send_user "$username $password"

Ese script se imprimirá

$ ./test.exp user1 pass1
user1 pass1

Puedes usar el modo de depuración

$ ./test.exp -d user1 pass1

Una mejor manera podría ser esta:

lassign $argv arg1 arg2 arg3

Sin embargo, su método también debería funcionar. Comprueba que arg1 se recupera. Por ejemplo, con send_user "arg1: $arg1\n" .


Linux
  1. ¿Cómo asignar la salida de un comando a una variable de shell?

  2. ¿Pasar argumentos de línea de comando a Bash Script?

  3. ¿Cómo pasar el contenido de un archivo como un parámetro de línea de comando?

  4. ¿Cómo acceder al último argumento de un comando comentado?

  5. 6 Ejemplos de argumentos de línea de comando de secuencia de comandos esperada

Linux:Cómo grabar un CD/DVD a través de la línea de comandos

Cómo configurar el navegador predeterminado en Debian a través de la línea de comandos

Cómo almacenar un comando de Linux como una variable en el script de Shell

¿Cómo configurar el navegador predeterminado desde la línea de comandos?

¿Cómo ejecutar un comando en un script de Shell?

¿Cómo leer argumentos de línea de comando en scripts de Shell?