在KSH中生成12位数的十六进制数

时间:2010-07-31 15:43:38

标签: linux scripting solaris ksh

我需要在Solaris上的KSH中生成12位十六进制数字

由于

4 个答案:

答案 0 :(得分:4)

#!/bin/ksh
set -A hex 0 1 2 3 4 5 6 7 8 9 A B C D E F
for i in {1..12}
do
   printf ${hex[$((RANDOM%16))]}
done

答案 1 :(得分:1)

从这个Python程序hex12.py开始。

hex12.py

#!/usr/bin/env python
import random
import hashlib
h= hashlib.sha1(str(random.random())).hexdigest()
print h[:12]

在你的shell中,你现在可以使用hex.py在标准输出上创建12个十六进制数字。

答案 2 :(得分:0)

试试这个:

DIGITS=`head -c 6 /dev/urandom | od -x | head -n 1 | sed -e 's/^0* //' -e 's/ //g'

答案 3 :(得分:0)

随着RANDOM变量生成一个15位数字(从0到32767),您可以连接多个RANDOM值。

您需要一个48位数字,因为12个十六进制数字是12 * 4 = 48位。

要么:

$ printf '%x\n' $(( ((RANDOM<<15|RANDOM)<<15|RANDOM)<<3|RANDOM%8 ))
9142467b46d3

或者:

$ printf '%x' $((RANDOM%4096)) $((RANDOM%4096)) $((RANDOM%4096)) $((RANDOM%4096)); echo
808878c21e19