Expect

Expect 腳本中的變數文件

  • January 17, 2019

我正在使用這個期望腳本作為互動式 shell 腳本的應答文件:

#!/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 命令,但這在預期中不起作用。

有任何想法嗎?

一種方法是在文件(此處為vars)中設置 TCL 變數,然後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

引用自:https://unix.stackexchange.com/questions/495071