防止 pwgen -y 生成反引号或引号?(或以其他方式清理输出)

Ale*_*lex 3 passwords bash

我在 bash 脚本中使用 pwgen。为了安全起见,我们必须使用该-y标志来包含至少一个特殊字符。然而,这经常返回带有一个或多个 ` 或 " 的密码,这会破坏周围的脚本。

我可以阻止生成这些字符吗?如果没有,删除、替换或以其他方式清理 pwgen 的输出以排除这些字符的最干净方法是什么?

我当前的 pwgen 是;

intPW=$(pwgen -c -n -y -B -1 15)
Run Code Online (Sandbox Code Playgroud)

这意味着 intPW 的值可能是这样的;

iqui`c:ee4so4Ch
hph7eew"ohr9Ee
Run Code Online (Sandbox Code Playgroud)

我需要保证每个密码中都有一个符号,而不是有问题的符号之一。

我能想到的任何替换(从 if 循环到 sed)都会中断,因为我试图针对反引号。

eto*_*ght 5

如果您使用的是pwgen2.08 版本,则可以使用新选项-r来排除不需要的字符

pwgen -cnyB1 -r \`\" 15
Run Code Online (Sandbox Code Playgroud)