Bashシェルスクリプトでランダムな文字列を作成する

Bash

背景

Webサイトを見ていてたまたま urandom というものを見つけた。 これをうまく使うことでランダムな文字列を生成できる。

環境

$ uname -a
Darwin genzouw-no-MacBook-Pro.local 15.0.0 Darwin Kernel Version 15.0.0: Sat Sep 19 15:53:46 PDT 2015; root:xnu-3247.10.11~1/RELEASE_X86_64 x86_64 i386 MacBookPro10,1 Darwin
$ bash -version
GNU bash, バージョン 4.3.42(1)-release (x86_64-apple-darwin14.5.0)
Copyright (C) 2013 Free Software Foundation, Inc.
ライセンス GPLv3+: GNU GPL バージョン 3 またはそれ以降 <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

試してみる

ランダムな8文字の数字

$ cat /dev/urandom| tr -dc '[:digit:]'| head -c 8
18069591

ランダムな10文字の英数字

$ cat /dev/urandom| tr -dc 'A-Za-z0-9'| head -c 10
txdya1xDQn

その他

一部のサイトでは、以下の用に :digit: の部分を :alnum: にして英数字を出力しようとしているものもあったのだが、僕の環境では正常に動かなかった。 どうしても10文字出力されない。

$ cat /dev/urandom| tr -dc '[:digit:]'| head -c 10

ひとこと

Bashシェルスクリプトでも色々できますね。

Bash

Posted by genzouw