我的bash脚本由几个函数组成,我可以选择从脚本中的不同点开始。如果存在日志文件,则只能从第一步以外的其他步骤开始。此日志文件包含运行期间的所有给定参数,如下所示:
var1=ABC
var2=123
var3=456
var1=DEF
var4=XYZ
var2=789
正如您所看到的那样,在读取日志文件时,变量会分配不同的值。 现在我想知道如何在主函数的开头通过这个文件读取我的脚本,以便所有后续函数使用日志文件中的这些变量,直到函数内的变量发生变化。
我不想为变量分配新名称,因为它们在其他函数中标题相同。我实际上只是希望读取文件,因为它的内容将在主函数的开头写入。
function1 {
var1="X"
}
.
.
.
#MAIN
read logfile
function1
...
答案 0 :(得分:2)
例如,如果包含var1=ABC
等的文件名为params.sh,则可以在Bash中执行此操作:
source params.sh
此操作就像您在该位置粘贴了params.sh
的全部内容一样。
如果你想与其他shell兼容,这是相同的,更便携,但不太可读:
. params.sh
答案 1 :(得分:0)
使用. name-of-the-script
运行。
这会将子shell中设置的环境变量传递给父shell。