シェルスクリプトで16進数で乱数を取得する方法

目次

スポンサードリンク

シェルスクリプトで乱数を取得する際は $RANDOM を使用します。 $RANDOMはBashのシェルスクリプトで利用できる特別な変数で、0から32767までの間のランダムな整数を10進数で取得することができます。$RANDOMは参照する度に毎回異なる値が得られます。

16進数で乱数を取得する方法

$RANDOMで取得できる値は0から32767までの数値です。この数値を printf コマンドで16進数として取得します。 下記サンプルは、$RANDOMの値を16進数として変数に代入し、echoで標準出力に出力しています。

#!/bin/bash

# 5桁の16進数で乱数を取得
random=$(printf "%05x" $RANDOM)
echo $random

exit 0

printfコマンドは指定したフォーマットで出力を生成するコマンドです。フォーマット指定は %05x の部分です。 5が桁数を指定している部分で、0で足りない桁数をゼロ埋めすることを指定しています。x の部分で出力を16進数にしています。

  • %: フォーマット指定子の開始
  • 0: 数値の左側を0で埋める指定
  • 5: 出力の桁数
  • x: 16進数で出力

上記サンプルを test.sh として保存し何度か実行してみます。ランダムな16進数を取得することができました。

[root@hostname tmp]# ./test.sh
0402f
[root@hostname tmp]# ./test.sh
009fc
[root@hostname tmp]# ./test.sh
00b90
[root@hostname tmp]# ./test.sh
048a7
[root@hostname tmp]# ./test.sh
0267f


シェルスクリプトの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。

最短3時間で覚えるLinuxシェルスクリプト
こちらは、シェルスクリプトの基本的な書き方、デバッグ方法、if, case, while, forなど基本的な制御構文について書かれています。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。

Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】 icon