读取.properties文件以设置Expect shell脚本中的使用值和密码字段

时间:2015-02-08 16:51:35

标签: shell expect

如何从用户的“属性”文件中读取值,在shell中的“期望”字段中输入密码字段?

假设我的values.prop文件的值如下,

user=abcd
pwd=xxxx

我想在test.sh中设置上面的值,如下所示

!/usr/bin/expect
set user "abcd"
set password "xxxx"
spawn ssh $user@$host
expect "$user@$hosts's password:"
send "$password\n"

1 个答案:

答案 0 :(得分:0)

如果你可以修改属性文件的格式,那么最简单的方法就是使用source functionality of tcl(期望脚本实际上是tcl脚本)。

!/usr/bin/expect
source values.prop
spawn ssh $user@$host
expect "$user@$hosts's password:"
send "$password\n"

values.prop现在看起来像这样:

set user "abcd"
set password "xxxx"

这是一个原始shell脚本,可以自动将属性文件转换为tcl文件

#!/bin/sh
. "$1"
printf 'set user "%s"\n' "$user"
printf 'set password "%s"\n' "$password"

像这样使用:

translate ./values.prop > values.prop.tcl

然后在您的预期脚本中source values.prop.tcl