2010-07-31 4 views

Répondre

1

Commencez avec ce programme Python, hex12.py.

hex12.py

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

Dans votre shell, vous pouvez maintenant utiliser hex.py pour créer 12 chiffres hexadécimaux sur la sortie standard.

+0

@S. Lott, je crois qu'il a besoin d'une solution utilisant le script ksh. – Anders

+0

Il a demandé ksh, je pense qu'il a besoin d'un script shell korn –

+0

Cela fonctionne dans ksh. Essayez-le. Si cela a des permissions 'x', alors le' #!/Usr/bin/env python' fait que ksh invoque Python. À chaque fois. Reliablement. En effet, cela fonctionne dans à peu près tous les shell. –

0

Essayez celui-ci:

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

Bonne solution sauf que j'ajouterais probablement une ligne supplémentaire avant la boucle, c'est-à-dire RANDOM = 0x'head -c 4/dev/urandom | od -x | tête -1 | cut -d '' -f6' – fpmurphy1

+0

Cela fonctionne bien, je vais essayer dès que je serai au travail demain Merci – rojanu

+0

Cela devrait être le module 16. Vous pouvez omettre le '$ (())': '$ { hex [RANDOM% 16]} '. Vous pouvez aussi faire 'hex = ({0..9} {A..F})'. (Ceci est vrai dans ksh93 Je ne suis pas sûr des versions antérieures.) –

Questions connexes