问题描述
可能是一个小的shell脚本问题: 我试图避免将秘密值打印到控制台输出或日志。我必须逐行读取文件,然后替换每行中的所有变量值并将输出写入新文件。
这是我的读写代码,但问题是input.txt
包含来自另一个系统或环境变量的秘密变量。
source ./environment
while read line;
do eval echo \"$line\";
done < input.txt > output.txt
./环境文件包含一些变量值。
input.txt的外观如下:
projectName=Alpha
apiKey=${SECREST_APIKEY}
userKey=${SECRET_USERKEY}
projectVersion={$VERSION}
requesterEmail=
颜色日志:
...
+ read line
+ eval echo '"projectName=Alpha"'
++ echo projectName=Alpha
projectName=Alpha
+ read line
+ eval echo '"apiKey=${CFG_APIKEY}"'
++ echo apiKey=blablablablablabla
+ read line
+ eval echo '"userKey=${CFG_USERKEY}"'
++ echo userKey=keyKEYkey
...
但是控制台日志会打印出包括机密在内的所有内容。我知道这是因为我的代码中产生了回声,但我不知道这里的替代解决方案是什么。 如果另一个问题已经解决了这个问题,请告诉我。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)