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

Read .properties file to set value in use and password field in Expect shell script

如何在 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"

如果您可以修改属性文件的格式,那么最简单的方法就是使用 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
. ""
printf 'set user "%s"\n' "$user"
printf 'set password "%s"\n' "$password"

这样使用:

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

然后 source values.prop.tcl 在你的 expect 脚本中。