在KSH

2010-07-31 34 views
1

生成12位十六進制數字,我需要在KSH在Solaris在KSH

產生12位進制數

感謝

回答

1

開始與這個Python程序,hex12.py

hex12.py

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

在您的外殼,你現在可以使用hex.py創建標準的12個十六進制數字出來。

+0

@S。洛特,我相信他需要使用ksh腳本的解決方案。 – Anders 2010-07-31 15:59:49

+0

他問ksh,我認爲他需要一個korn shell腳本 – 2010-07-31 15:59:57

+0

這在ksh中有效。嘗試一下。如果它具有'x'權限,則'#!/ usr/bin/env python'會導致ksh調用Python。每次。可靠。事實上,它幾乎適用於所有的外殼。 – 2010-07-31 16:00:54

0

試試這個:

DIGITS=`head -c 6 /dev/urandom | od -x | head -n 1 | sed -e 's/^0* //' -e 's/ //g' 
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 
+0

好的解決方案,除了我可能會在循環之前添加一行,即RANDOM = 0x'head -c 4/dev/urandom | od -x |頭-1 | cut -d''-f6' – fpmurphy1 2010-07-31 16:57:03

+0

這是行得通的,明天我上班時我會嘗試一下 謝謝 – rojanu 2010-08-01 19:01:44

+0

這應該是模數16.你可以省略'$(())':'$ {六角[RANDOM%16]}'。你也可以做'hex =({0..9} {A..F})'。 (這些在ksh93中都是如此,我不確定早期版本) – 2010-08-02 00:47:13