1

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

服务器上的文件名是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

4 回答 4

2

尝试eval "$vars"

它似乎对我有用。

于 2013-06-07T18:48:48.077 回答
2

任何更简单的方法,无需运行脚本,将是:

eval `ssh user@server cat /variable.properties`
于 2013-06-07T18:52:15.530 回答
1

如果你使用 bash 作为你的脚本解释器而不是 sh,你可以这样做

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

也许

scp -q user@server:/variable.properties .
. variable.properties
于 2013-06-07T19:42:47.277 回答
0
chmod +x /path/to/variables.properties
. /path/to/variables.properties

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

于 2013-06-07T18:49:15.693 回答