$ cat /dev/random | env LC_ALL=C tr -dc "[:alnum:]+-/^" | head -c 10 | awk 1
作業をしていて、適当にワンタイムパスワードが必要になったりした場合に。
ググったら似たようなテクニックがたくさん見つかったので、 アプローチはいろいろあるみたいですが、私はこれが一番好きです。 汎用性高いし。
原理としてはランダムデバイスからのデータを tr
コマンドで該当文字種以外を消す感じ。
tr
の引数になっている正規表現が採用する文字種なので、まぁお好みで。
LC_ALL
を書き換えないと、日本語環境で悲しいことになります。どうして……
で、 head -c 10
で先頭 10 Byte を取り出すので、ここもお好きに。
最後に awk 1
を通すと、末尾が改行で終わります。
これがないとランダム文字列の後ろにプロンプトが出てきて残念。
まぁ別にそれでもいいですけど。