我有一个在服务器上的文件中定义的变量列表,我想将这些变量加载到本地计算机上的脚本中,而不将它们保存到本地计算机上的文件中。
服务器上的文件名为variables.properties
假设variables.properties
的内容为:
var1="string1"
var2="string2"
var3="string3"
var4="string4"
现在我可以将该文件的内容恢复到我的本地计算机,如下所示:
!#/bin/sh
vars=$(ssh user@server "cat /variable.properties")
echo $vars
有没有办法可以从$vars
变量将每个变量加载到我的脚本中,以便它们在我的本地机器上具有相同的名称和值?
答案 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相比,这是解决此类问题的常用方法。