メールアドレスでアカウントを作成するサービスの開発を行う際、メールアドレスをどう用意するか、というのが問題になると思います。
Gmailを使うと「+」で複数のメールアドレスを簡単に作れるので便利なのですが、重複しないである程度覚えやすくしておきたい、というのはあると思います。自動テスト用であれば覚える必要もないのでタイムスタンプをベースにメールアドレスを自動生成させて1回こっきりの使い捨てみたいにすることでいいかと思います。
prefix="youremail+localhost" suffix="@gmail.com" ymd=`date "+%Y%m%d%H%M%S"` echo ${prefix}${ymd}${suffix}
youremail+localhost20170116113308@gmail.com
みたいなアドレスが生成されていました。確かにかぶるケースないんですが、ただこれだと長くて覚えづらいです。
そこで、
- 多少メールアドレスが重複してもいたし方ない
- そこそこ覚えやすく
- 紛らわしい文字は除外しておく
要件で、以下のように改善してみました。
prefix="youremail+localhost" suffix="@gmail.com" ymd=`date "+%Y%m%d"` serial=`cat /dev/urandom | LC_CTYPE=C tr -dc 'abcdefghijkmnpqrstuvwxyz' | fold -w 1 | head -n 1` echo ${prefix}${ymd}${serial}${suffix}
youremail+localhost20170118j@gmail.com
みたいなメールアドレスができあがりました。
参考 http://qiita.com/K-Ponta/items/86e96dfd5d53e0a0ed33
bashでA-Zの連番を取り出すのは以下のようにして取り出すことが可能です。
echo {a..z} a b c d e f g h i j k l m n o p q r s t u v w x y z
参考
http://kaworu.jpn.org/kaworu/2014-07-11-1.php