如何从Expect中的变量生成

时间:2014-08-18 04:50:49

标签: tcl expect

有些进程在计算中途输入密码。我希望在流程开始时插入一个密码,所以我试图创建一个通用的expect脚本来生成一个进程,然后给它一个密码。

这个期望脚本会输入要输入的密码和生成的过程:

#!/usr/bin/expect

set timeout 120

# Get program to spawn and password to send
set pswd [lindex $argv 0]
set program [lindex $argv 1]

spawn $program

expect "Password:"
send "$pswd\r"

interact

这将从bash函数调用:

function vup {
    echo -n "Enter Password: "
    read -s pswd
    echo
    expectPassword.exp $pswd "vagrant up"
}

但我收到错误:

couldn't execute "vagrant up": no such file or directory
    while executing
"spawn [join $program]"

当我在没有参数的程序上使用它时,这个脚本似乎有效。但我不确定如何使其适用于具有可变数量参数的人。

1 个答案:

答案 0 :(得分:3)

一种方法是使用eval

eval spawn $program