我需要在Solaris上的KSH中生成12位十六进制数字
由于
答案 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