Variablendatei im Expect-Skript

Variablendatei im Expect-Skript

Ich verwende dieses Expect-Skript als Antwortdatei für ein interaktives Shell-Skript:

#!/usr/bin/expect

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

oben funktioniert, aber ich möchte Variablen aus einer Eingabedatei verwenden.

meine Variablendateien sehen folgendermaßen aus:

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

Normalerweise würde ich in Bash den Quellbefehl verwenden, aber in Expect funktioniert das nicht.

Irgendwelche Ideen?

Antwort1

Eine Methode wäre, TCL-Variablen in einer Datei (hier vars) festzulegen und sourcediese Datei dann vom Hauptskript aus aufzurufen.

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

Es kann sinnvoll sein, aussagekräftigere Variablennamen zu verwenden als varN...

verwandte Informationen