如何在UNIX中使用source命令从文件中获取变量名称?

时间:2019-02-09 14:58:07

标签: unix

我有一个名为param1.txt的文件,其中包含某些变量。我还有另一个文件source1.txt,其中包含占位符。我想用从参数文件中获得的变量值替换占位符。

我基本上已经对脚本进行了硬编码,其中parameter.txt文件中的变量名是事先已知的。我想知道一种动态解决方案,该问题不会事先知道变量名。换句话说,在UNIX中是否有任何方法可以使用source命令在文件中找出变量名?

这是我的脚本和文件。

脚本:

#!/bin/bash
source /root/parameters/param1.txt
sed "s/{DB_NAME}/$DB_NAME/gI;
  s/{PLANT_NAME}/$PLANT_NAME/gI" \
  /root/sources/source1.txt >
  /root/parameters/Output.txt`

param1.txt:

PLANT_NAME=abc
DB_NAME=gef

source1.txt:

kdashkdhkasdkj {PLANT_NAME}
jhdbjhasdjdhas kashdkahdk asdkhakdshk
hfkahfkajdfk ljsadjalsdj {PLANT_NAME}
{DB_NAME}

2 个答案:

答案 0 :(得分:0)

由于我的积分不足,因此我无法发表评论。 但这是您要找的东西吗?

How to reference a file for variables using Bash?

您的问题陈述对我来说不是很清楚。也许您可以简化问题和所需状态。

答案 1 :(得分:0)

不明白为什么要尝试获取param1.txt。
您可以尝试使用此awk:

HttpServletRequest