【问题标题】:Reference group of variables from one file to another in shell在 shell 中将一组变量从一个文件引用到另一个文件
【发布时间】:2014-02-22 19:59:33
【问题描述】:

我没有看到任何接近这个用例的东西,所以我不确定这在 shell 脚本中会是什么样子。本质上,我有一堆模板 shell 脚本,其中文件的唯一区别是一组 4 个变量。我想为这些变量创建另一个文件,如下所示:

# Group 1
Var 1 = A
Var 2 = B
Var 3 = C
Var 4 = D

# Group 2
Var 1 = F
Var 2 = G
Var 3 = H
Var 4 = I

等等。然后我想使用一个 shell 脚本作为模板并传入一个参数。如./script.sh group2。脚本将使用此参数,转到输入文件并确定要用于脚本其余部分的变量组。这可能吗?正确的语法是什么?

更新:

我的一个想法是这样的:

SITE="$1"
VIP="Source ../conf/${$1.VIP}"
DMN1="Source ../conf/${$1.VAR1}"
DMN2="Source ../conf/${$1.VAR2}"
DMN3="Source ../conf/${$1.VAR3}"

这个想法是,当我运行脚本时,我运行 ./script.sh ABC 由此,脚本将使用 ABC 作为站点,然后从配置文件中,将标记为 ABC.VIP 的变量引用到 ABC.DMN3。在配置文件中,它将读取 ABC.VIP="abcvip"。这不会缓解我的问题吗?我假设这样的事情会起作用,但我不确定这一切的语法。主要是链接到源变量引用。

【问题讨论】:

  • 如果您已经定义了不同文件中所需的变量组,那么您的脚本可以像普通配置文件一样获取文件。比如在你的 script.sh 中添加“source group_1”
  • 这样做,我不会真正增加任何真正的好处。我希望能够拥有一个变量配置文件和除参数之外的通用脚本,以从配置文件中选择要使用的组。

标签: shell variables parameter-passing


【解决方案1】:

你可以通过一个简单的函数创建来实现,它间接地工作在上面的例子中。

######### Make this as a source file #### 
group_1()
{
Var1=A
Var2=B
Var3=C
Var4=D
}

group_2()
{
Var1=F
Var2=G
Var3=H
Var4=I
}
###################

在一个文件中创建上述内容并创建另一个文件,您可以在其中调用特定变量,如下所示

if [[ target == "group_1" ]]
  then
    group_1
    echo $Var1
  else
    group_2
  echo $Var1
fi

希望这能解决您的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2023-03-17
    • 2014-05-03
    相关资源
    最近更新 更多