2013-05-04 10 views
5

Manchmal im Bash-Scripting muss ich neu GUID(Global Unique Identifier) generieren.Linux-Befehl zum Generieren neuer GUID?

ich bereits getan, dass durch einen einfachen Python-Skript, das eine neue GUID generiert: here siehe

#! /usr/bin/env python 
import uuid 
print str(uuid.uuid1()) 

Aber ich brauche dieses Skript in jedes neues System zu kopieren, die ich bearbeiten.

Meine Frage ist: Kann jemand einen Befehl oder ein Paket vorstellen, das ähnliche Befehle enthält?

+1

mögliche Duplikate von [Befehlszeilen-GUID für Unix und Windows?] (Http://stackoverflow.com/questions/569858/command-line-guid-for -unix-and-windows) – hek2mgl

+1

Nicht schlecht. Wie konntest du nicht googlen "Linux-Befehl, um neue GUID zu generieren?" : D – hek2mgl

+0

@ hek2mgl: Du hast Recht – pylover

Antwort

10

Sie nicht uuidgen Unter der Annahme, brauchen Sie nicht ein Skript:

$ python -c 'import uuid; print str(uuid.uuid1())' 
b7fedc9e-7f96-11e3-b431-f0def1223c18 
+2

Schön, aber es scheint nicht ganz zu sein zufällig: Nur die ersten 8 Zeichen ändern sich bei jedem Anruf. – krookedking

+3

Es soll nicht * zufällig * sein, es soll * einzigartig * sein. Wenn Sie nach dem Zufallsprinzip wollen, verwenden Sie 'uuid.uuid4()' gemäß der Dokumentation. – MikeyB

3

Da Sie eine zufällig UUID wollte, Sie wollen 4 Typ verwenden, anstatt von Typ 1:

python -c 'import uuid; print str(uuid.uuid4())' 

Diese Wikipedia article erklärt die verschiedenen Arten von UUIDs. Sie möchten "Typ 4 (Zufall)".

schrieb ich ein wenig Bash-Funktion Python mit einer beliebigen Anzahl von Typ 4 UUIDs in der Masse zu erzeugen:

# uuid [count] 
# 
# Generate type 4 (random) UUID, or [count] type 4 UUIDs. 
function uuid() 
{ 
    local count=1 
    if [[ ! -z "$1" ]]; then 
     if [[ "$1" =~ [^0-9] ]]; then 
      echo "Usage: $FUNCNAME [count]" >&2 
      return 1 
     fi 

     count="$1" 
    fi 

    python -c 'import uuid; print("\n".join([str(uuid.uuid4()).upper() for x in range('"$count"')]))' 
} 

Wenn Sie es vorziehen Klein ändern:

python -c 'import uuid; print("\n".join([str(uuid.uuid4()).upper() for x in range('"$count"')]))' 

An:

python -c 'import uuid; print("\n".join([str(uuid.uuid4()) for x in range('"$count"')]))' 
Verwandte Themen