
Estou usando este script esperado como um arquivo de resposta para um script de shell interativo:
#!/usr/bin/expect
spawn ./interactivescriptname
expect "Question 1?"
send "something\r"
expect "Question 2?"
send "yes\r"
expect "Password?"
send "somepassword\r"
interact
acima funciona, mas quero usar variáveis de um arquivo de entrada.
meus arquivos de variáveis ficam assim:
var1="something"
var2="yes"
var3="somepassword"
Normalmente no bash eu usaria o comando source, mas isso não funciona como esperado.
Alguma ideia?
Responder1
Um método seria definir variáveis TCL em um arquivo (aqui, vars
) e depois source
nesse arquivo do 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
$
Pode ser bom usar nomes de variáveis mais informativos do que varN
...