有些进程会在计算过程中获取密码。我希望在进程开始时插入密码,因此我尝试创建一个通用的 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
Run Code Online (Sandbox Code Playgroud)
这将从 bash 函数中调用:
function vup {
echo -n "Enter Password: "
read -s pswd
echo
expectPassword.exp $pswd "vagrant up"
}
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
couldn't execute "vagrant up": no such file or directory
while executing
"spawn [join $program]"
Run Code Online (Sandbox Code Playgroud)
当我在没有参数的程序上使用该脚本时,该脚本似乎可以工作。但我不确定如何使其适用于参数数量可变的情况。
一种方法是使用eval:
eval spawn $program
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3562 次 |
| 最近记录: |