从文本文件中获取已声明的变量

时间:2014-10-30 11:12:08

标签: bash

我的bash脚本由几个函数组成,我可以选择从脚本中的不同点开始。如果存在日志文件,则只能从第一步以外的其他步骤开始。此日志文件包含运行期间的所有给定参数,如下所示:

var1=ABC
var2=123
var3=456
var1=DEF
var4=XYZ
var2=789

正如您所看到的那样,在读取日志文件时,变量会分配不同的值。 现在我想知道如何在主函数的开头通过这个文件读取我的脚本,以便所有后续函数使用日志文件中的这些变量,直到函数内的变量发生变化。

我不想为变量分配新名称,因为它们在其他函数中标题相同。我实际上只是希望读取文件,因为它的内容将在主函数的开头写入。

function1 {
var1="X"
}
.
.
.
#MAIN
read logfile
function1
...

2 个答案:

答案 0 :(得分:2)

例如,如果包含var1=ABC等的文件名为params.sh,则可以在Bash中执行此操作:

source params.sh

此操作就像您在该位置粘贴了params.sh的全部内容一样。

如果你想与其他shell兼容,这是相同的,更便携,但不太可读:

. params.sh

答案 1 :(得分:0)

使用. name-of-the-script运行。

这会将子shell中设置的环境变量传递给父shell。