単純な bash スクリプトであるはずが、怪物になってしまいました。5回目の挑戦です。試み #4 であった 30 行の怪物も見たくありません.. :)
私がやりたいことは次のとおりです。スクリプトは、$1=パスワードの長さ、および $2=出力に存在する特殊文字の量で、ランダムなパスワードを生成します。
または、少なくとも、標準出力に送信する前に、少なくとも 1 つの特殊文字が存在することを確認してください。私は前者を好むが、後者に落ち着く。
これが、このスクリプトの非常に単純な 5 番目のバージョンです。検証なし、または $2:
#!/bin/bash
cat /dev/urandom | tr -dc [=!=][=@=][=#=][=$=][=%=][=^=][:alnum:] | head -c $1
これは問題なく機能し、Usage で十分に安全なパスワードです。
$ passgen 12
2ZuQacN9M@6!
しかし、もちろん、常に特殊文字が出力されるとは限りません。出力に含まれる特殊文字の数を選択できるようにすることは、私にとって強迫観念になっています。思ったほど簡単ではありません。
わかる?
ところで、私はコードを完全に作り直すことは気にしません。いくつかの創造的な解決策を見ることに非常に興味があります!
(ちなみに、さまざまな方法で egrep/grep にパイプしようとしましたが、役に立ちませんでしたが、解決策の可能性があると感じています...)
ありがとうケビン