使用perl用复杂的密码替换文件中的某些字符串

问题描述 投票:0回答:1

我想在bash脚本中使用perl将文本文件中的某些字符串替换为可能包含各种特殊字符(密码)的其他字符串。包含特殊字符的变量来自环境,因此我不知道它们。

例如

# pw comes from the environment and I cannot be sure about it's content
pw='%$&/|some!\!smart%(]password' 
pw=${pw//:/\\:}
perl -p -e "s:PASSWORD:$pw:" <<< "my pw is: PASSWORD" # this would come from a text file
# yields: my pw is: %PASSWORD/|some!!smart%(]password

在这里,我将:用作分隔符并避免之前可能发生的情况,这应该可以防止某些错误。但是执行此操作确实表明它甚至无法按预期进行远程工作。 bash扩展仍在弄乱密码。

现在我的问题是:如何安全地获取一些环境变量并将其放置在其他位置?有什么更好的方法?我当然可以替换并转义未知变量中的其他字符,但是如何确定这是否足够?

bash perl replace passwords delimiter
1个回答
0
投票

使用适当的ENV special variable

ENV
© www.soinside.com 2019 - 2024. All rights reserved.