如何从用户的“属性”文件中读取值,在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"
答案 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
。