小编rud*_*udi的帖子

如何将脚本的所有输出重定向到文件并替换密码?

我正在 AIX 7.2 上运行 ksh 脚本。

在调试模式下,我想将所有脚本执行的操作重定向到 brkpt 文件。
该脚本还登录另一个应用程序,因此使用密码(假设“pw123_”)

 exec > $brkpt_file 2>&1
 set -xv
 dsmadmc -id=admin -pa=pw123_ q pr
Run Code Online (Sandbox Code Playgroud)

重定向工作正常,但我想用“***”替换密码字符串,以便它在 brkpt 文件中永远不可见。

这在命令行上工作得很好:

 echo "dsmadmc -id=admin -pa=pw123_ q pr" | sed "s/-pa=[[:graph:]]* /-pa=*** /g"
result
 dsmadmc -id=admin -pa=*** q pr
Run Code Online (Sandbox Code Playgroud)

但是一旦我将这个“sed”与“exec”结合使用:
a)输出不再重定向到文件,而是在屏幕上
b)密码字符串不会被替换

 exec | sed 's/-pa.*=[[:graph:]]* /pa=*** /g' > $brkpt_file 2>&1
 set-xv
 dsmadmc -id=admin -pa=pw123_ q pr
result
 + dsmadmc -id=admin -pa=pw123_ q pr
 + ... other stuff of script
 
Run Code Online (Sandbox Code Playgroud)

如何获取 brkpt 中的所有脚本内容并隐藏密码?

password ksh sed exec

2
推荐指数
1
解决办法
351
查看次数

标签 统计

exec ×1

ksh ×1

password ×1

sed ×1