从cat加载变量到内存中

时间:2013-06-07 18:46:11

标签: linux shell unix

我有一个在服务器上的文件中定义的变量列表,我想将这些变量加载到本地计算机上的脚本中,而不将它们保存到本地计算机上的文件中。

服务器上的文件名为variables.properties

假设variables.properties的内容为:

var1="string1"
var2="string2"
var3="string3"
var4="string4"

现在我可以将该文件的内容恢复到我的本地计算机,如下所示:

!#/bin/sh

vars=$(ssh user@server "cat /variable.properties")
echo $vars

有没有办法可以从$vars变量将每个变量加载到我的脚本中,以便它们在我的本地机器上具有相同的名称和值?

4 个答案:

答案 0 :(得分:2)

尝试eval "$vars"

这似乎对我有用。

答案 1 :(得分:2)

没有运行脚本的任何更简单的方法都是:

eval `ssh user@server cat /variable.properties`

答案 2 :(得分:1)

如果您使用bash作为脚本解释器而不是sh,则可以执行

source <(ssh user@server "cat /variable.properties")

或者

scp -q user@server:/variable.properties .
. variable.properties

答案 3 :(得分:0)

chmod +x /path/to/variables.properties
. /path/to/variables.properties

这会获取文件并创建var1,var2 .... 与使用cat相比,这是解决此类问题的常用方法。