Переменный файл в скрипте Expect

Переменный файл в скрипте Expect

Я использую этот сценарий ожидания в качестве файла ответов для интерактивного сценария оболочки:

#!/usr/bin/expect

spawn ./interactivescriptname
expect "Question 1?"
send "something\r"
expect "Question 2?"
send "yes\r"
expect "Password?"
send "somepassword\r"
interact

Вышеуказанное работает, но я хочу использовать переменные из входного файла.

Мои файлы переменных выглядят так:

var1="something"
var2="yes"
var3="somepassword"

Обычно в bash я бы использовал команду source, но в expect это не работает.

Есть идеи?

решение1

Одним из методов было бы задать переменные TCL в файле (здесь, vars), а затем sourceэтот файл из основного скрипта.

$ 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
$ 

Возможно, будет полезно использовать более информативные имена переменных, чем varN...

Связанный контент