动态评估ENV变量



如何动态评估env变量?

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

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?

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

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