我在bash脚本中使用了pwgen。为了安全起见,我们必须使用-y
标志来包含至少一个特殊字符。但是,这经常会返回一个或多个`或"打破了周围的剧本。
我可以阻止生成这些字符吗?如果没有,那么删除,替换或以其他方式清理pwgen输出以排除这些字符的最简洁方法是什么?
我现在的pwgen是;
intPW=$(pwgen -c -n -y -B -1 15)
这意味着intPW的价值可能是这样的;
iqui`c:ee4so4Ch
hph7eew"ohr9Ee
我需要保证每个密码中都有一个符号,而不是其中一个有问题的符号。
我在替换方面可以想到的任何事情,从if循环到sed,都会因为我试图瞄准反引号而中断。
答案 0 :(得分:1)
假设您还不需要保护单引号字符,则以下内容应该没问题:
intPW=$(pwgen -c -n -y -B -1 15 | tr '`"' '$@')
这会将`转换为$和'转换为@。随意选择你喜欢的任何其他角色!
答案 1 :(得分:1)
如果您拥有pwgen
版本2.08,则可以使用新选项-r
排除不需要的字符
pwgen -cnyB1 -r \`\" 15