アドオン Echo [パスワードジェネレータ]

アドオン Echo [パスワードジェネレータ]

パスワードジェネレータを作成していますが、パスワードを正しく追加できません。

これは私のスクリプトです。

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ファイルを書き込むにはどうすればよいですか?

ありがとうございます。

ベストアンサー1

これは働きます:

for i in {1..5}; do
    printf '#%s/Z\n' "$(openssl rand -hex 4)"
done >passwords.txt

echoへの複数の呼び出しをprintfへの1回の呼び出しで置き換えました。コマンドの置き換えにラップされたopensslへの呼び出しは、行末を消える副作用があり、改行は例に示されている誤って配置された改行の原因です。

おすすめ記事