我正在创建密码生成器,但是无法正确添加密码。
这是我的剧本
i="0"
while [ $i -lt 5 ]
do
echo -n '#' >> passwords.txt && openssl rand -hex 4 >> passwords.txt && echo -n '/' >> passwords.txt && echo -n 'X' >> passwords.txt
i=$[$i+1]
done
输出
#b887e0d0
/X#7093289e
/X#2210cfcd
/X#fd175e1f
/X#0c18fc9e
/X
预期产量
#b887e0d0/Z
#7093289e/Z
#2210cfcd/Z
#fd175e1f/Z
#0c18fc9e/Z
我如何做到这一点,以使其不跳过第一行,并且也使其按该顺序运行每个命令,并将其作为预期输出写入密码txt文件。
谢谢。
这应该做:
for i in {1..5}; do
printf '#%s/Z\n' "$(openssl rand -hex 4)"
done >passwords.txt
我将对echo的多个调用替换为对printf的单个调用。将对openssl的调用包装在命令替换中会带来使行尾消失的副作用,而换行符是导致示例中可见的换行不正确的原因。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句