Unix-Expect:将命令的输出捕获为期望变量

时间:2014-01-09 20:37:07

标签: shell variables unix tcl expect

我试图在unix中捕获程序的输出,并将其用作expect脚本中的变量。当我执行该程序时,我会得到类似的结果:

[user@svr]# ./passwdgenerator
1234*&^^[user@svr]# 

如您所见,“1234 *& ^^”是我想要捕获的密码并将其放入expect脚本中:

set user user1
set password [open ./passwdgenerator]
spawn ssh $user@server1.com
expect "password:"
send "$password\r"

显然它目前无法正常工作,只是想知道我应该怎么写这个。曾经在txt文件上试过这个,工作过。但是当它是程序输出时,出于安全原因我们不想在文本文件中存储密码,所以它不起作用。有专家可以帮个忙吗?非常感谢。!

1 个答案:

答案 0 :(得分:5)

这一行

set password [open ./passwdgenerator]

更改为

set password [exec ./passwdgenerator]