动态评估环境变量

时间:2019-03-18 10:07:43

标签: linux bash awk

如何动态评估环境变量?

我正在复制文件的内容并替换其中的值。 我现在想出了这个:

awk -v FS="=" -v OFS="=" '$2="$"$1' source-file.txt > output-file.txt

假设我们有两个env变量,key1 ='toto1'和key2 ='toto2'

结果:

source-file.txt  ----------------->  output-file.txt   ----------> expected output-file.txt           
key1=secret                          key1=$key1                    key1=toto1
key2=secret                          key2=$key2                    key2=toto2

如何使其求值并打印key1 = toto1而不是key1 = $ key1?

1 个答案:

答案 0 :(得分:2)

awk -F= '{printf "%s=%s\n",$1,ENVIRON[$1]}' <source_file.txt >output_file.txt

这假定变量(key1等)是真正环境变量(即导出的变量),正如您所说的,而不仅仅是shell变量。