
Estoy usando este script de espera como archivo de respuesta para un script de shell interactivo:
#!/usr/bin/expect
spawn ./interactivescriptname
expect "Question 1?"
send "something\r"
expect "Question 2?"
send "yes\r"
expect "Password?"
send "somepassword\r"
interact
Lo anterior funciona, pero quiero usar variables de un archivo de entrada.
mis archivos de variables se ven así:
var1="something"
var2="yes"
var3="somepassword"
Normalmente en bash usaría el comando fuente, pero esto no funciona como se esperaba.
¿Algunas ideas?
Respuesta1
Un método sería configurar variables TCL en un archivo (aquí vars
) y luego source
ese archivo desde el script principal.
$ cat vars
set var1 something
set var2 yes
set var3 Hunter2
$ cat script
#!/usr/bin/env expect
source vars
puts $var3
$ chmod +x script
$ ./script
Hunter2
$
Puede ser bueno utilizar nombres de variables más informativos que varN
...