UUID එකක් බාෂ් වලින් සාදා ගන්නේ කෙසේද?


185

ජාවා හි අහඹු UUID නිර්මාණය කළ හැකිය :

UUID uuid = UUID.randomUUID();

Bash හි මෙය කරන්නේ කෙසේද?

Answers:


224

E2fsprogs පැකේජයේ uuidgenකොටසක් වන වැඩසටහන බලන්න .

අනුව මෙම , libuuidදැන් කොටසක් util-linux සහ e2fsprogs දී ඇතුලත් කාලාන්තරයක් තිස්සේ කොට ඇත. කෙසේ වෙතත්, නව උබුන්ටු පද්ධති වල, uuidgenදැන් uuid-runtimeපැකේජයේ ඇත.

Uuid නිර්මාණය කර එය විචල්‍යයකින් සුරැකීමට:

uuid=$(uuidgen)

මගේ උබුන්ටු පද්ධතියේ, ඇල්ෆා අක්ෂර කුඩා අක්ෂර ලෙස ප්‍රතිදානය වන අතර මගේ OS X පද්ධතියේ ඒවා ඉහළ අකුරක් ලෙස ප්‍රතිදානය වේ (මෙය අදහස් දැක්වීමකදී ඩේවිඩ්ට ස්තූතියි).

සියලුම ඉහළ අකුරුවලට මාරුවීමට (ඉහත පරිදි එය ජනනය කිරීමෙන් පසුව):

uuid=${uuid^^}

සියලුම කුඩා අකුරුවලට මාරුවීමට:

uuid=${uuid,,}

උදාහරණයක් ලෙස, ඔබට UUID දෙකක් ඇති අතර ඒවා Bash හි සංසන්දනය කිරීමට ඔබට අවශ්‍ය නම්, ඔවුන්ගේ නඩුව නොසලකා හරිමින්, ඔබට මේ ආකාරයට tolower()ශෛලීය සංසන්දනයක් කළ හැකිය :

if [[ ${uuid1,,} == ${uuid2,,} ]]

7
හේයි, සාධාරණ නැහැ! මගේ e2fsprogs ඒ සමඟ පැමිණියේ නැත! මට එකක් අවශ්‍යයි, මම එය ලබා ගන්නේ කොහෙන්ද? (යාවත්කාලීන කිරීම: අහ්හ් ... uuid-runtimeකිසිදු හේතුවක් නොමැතිව ඩෙබියන් එය පැකේජයේ තබා ඇත ... ඔබට +1)
quack quixote

uuidgen පැමිණෙන්නේ freeBSD මත ය. එය සැමවිටම e2fsprogs පැකේජයේ නොමැත.
හොඳ පුද්ගලයා

1
Ob රොබ්: ඔබේ මුල් ප්‍රශ්නයට පිළිතුරු දීමට, එය ඩ්‍රයිව් ලේබල් සඳහා ය .
වැඩිදුර දැනුම් දෙන තුරු විරාමය.

2
සියලුම කුඩා අකුරුවලින් උබුන්ටු (යූට්-ලිනක්ස් 2.20.1 වෙතින් uuidgen) යන විට මැක් මත ඇති uuidgen සෑම ලොකු අකුරකම විමෝචනය වන බව මම දනිමි. ඇයි වෙනස? මෙවලම පැමිණියේ කොහෙන්දැයි උබුන්ටු ලැයිස්තුගත කර ඇති නමුත් මැක්හි අනුවාද තොරතුරු හෝ එය පැමිණියේ කුමන පැකේජයෙන්ද යන්න.
ඩේවිඩ්

1
Av ඩේවිඩ්: එය OS X හි මූලික මෙහෙයුම් පද්ධතියේ කොටසක් බව මම විශ්වාස කරමි. එකක් ඉහළ අකුරක් වන අතර අනෙක පහත් වන්නේ මන්දැයි මට අදහසක් නැත. එක්කෝ වලංගු හෙක්ස් අක්ෂර ( echo -e 'f\nF' | grep '[[:xdigit:]]'පේළි දෙකම ප්‍රතිදානය කරයි) නියෝජනය කරන බැවින් එය ඇත්ත වශයෙන්ම වැදගත් නොවේ . එය ඔබට වැදගත් වන අතර ඔබට Bash 4 තිබේ නම්, ඔබට එය කුඩා අකුරක් බවට පත් කිරීමට මෙය කළ හැකිය: uuid=$(uuidgen); uuid=${uuid,,}නැතහොත් මෙය ඉහළ අකුරක් බවට පත් කිරීම සඳහා: uuid=$(uuidgen); uuid=${uuid^^}හෝ tolower()ශෛලීය පරීක්ෂණයක් කිරීමට මෙම රේඛා ඔස්සේ යමක් :if [[ ${uuid1,,} == ${uuid2,,} ]]
වැඩිදුර දැනුම් දෙන තුරු විරාමයක් තබා ඇත.

167

බාහිර පරායත්තයන් එකතු නොකර විවිධත්වය එක් කිරීමට, ලිනක්ස් මත ඔබට කළ හැක්කේ:

UUID=$(cat /proc/sys/kernel/random/uuid)

මත, නරක පුරුදු ව්යාප්ත කිරීමට ඒ අතරින් කිහිපයකි හට linux ගැළපුම ස්ථරය (linuxulator?) යටතේ,

UUID=$(cat /compat/linux/proc/sys/kernel/random/uuid)

යොමුව:


19
මේක නම් නියමයි.
ටොම් ඕ'කොනර්

3
එය ඉතා අතේ ගෙන යා නොහැකි බැවින් මෙය වළක්වා ගත යුතුය (දුර්වල ලෙස ලියා ඇති යෙදුම් සඳහා FreeBSD සැපයුම් / comp / linux / proc / sys / kernel / random / uuid වුවද)
යහපත් පුද්ගලයා

1
ආරම්භක රූපයේ ඇතුළත භාවිතය සඳහා එය හොඳින් ගැලපේ
මැක්සිමිලියන්

2
මෙය හොඳම පිළිතුර විය යුතුය!
dguerri

6
ඩොකර් බහාලුමක් වැනි අවම සැකසුම් සඳහා මෙය වඩා හොඳ පිළිතුරකි.
jacderida

34

සම්පූර්ණත්වය උදෙසා ... dbusඩේබියන් පැකේජය සමඟ UUID උත්පාදක යන්ත්රයක් ස්ථාපනය කර ඇත . කලින් වටපිට බැලීමෙන් මට එය මග හැරුණි. එය බොහෝ විට e2fsprogs පැකේජයට සමාන ඇල්ගොරිතමයක් විය හැකි නමුත් එය ඉරක් එකතු නොකරයි, එබැවින් එය ඔබට ටිකක් පිරිසිදු විය හැකිය:

$ uuidgen
387ee6b9-520d-4c51-a9e4-6eb2ef15887d

$ dbus-uuidgen
d17b671f98fced5649a856a54b51c9e6

ගුරුත්වාකර්ෂණය ආරක්ෂිත තොරතුරක් එක් කරයි: "DBus UUIDs RFC 4122 සමඟ සම්බන්ධ හෝ අනුකූල නොවේ . මීට අමතරව, dbus-uuidgen සෑම විටම යුනික්ස් කාලරාමුව අවසාන බයිට් 4 ලෙස භාවිතා කරයි. එබැවින් ඒවා සමහර භාවිතයන් සඳහා නුසුදුසු විය හැකිය." (ස්තූතියි, ගුරුත්වාකර්ෂණය, මම එය මෑන් පිටුවේ දැකිය යුතුව තිබුණි.)


7
DBus UUIDs RFC 4122 සමඟ සම්බන්ධ හෝ අනුකූල නොවේ. මීට අමතරව, dbus-uuidgenසෑම විටම යුනික්ස් කාලරාමුව අවසාන බයිට් 4 ලෙස භාවිතා කරයි. එබැවින් ඒවා සමහර භාවිත සඳහා නුසුදුසු විය හැකිය.
user1686

ෆෙඩෝරා -25 හි ද එයම ක්‍රියාත්මක වේ ...
kmonsoor

20

ඔබට වෙනත් ක්‍රියාත්මක කළ හැකි දේ මත යැපීමට අවශ්‍ය නැතිනම් හෝ ඔබට ඒවා භාවිතා කළ නොහැකි නම්, මෙහි පිරිසිදු බාෂ් අනුවාදය මෙන්න :

# Generate a pseudo UUID
uuid()
{
    local N B T

    for (( N=0; N < 16; ++N ))
    do
        B=$(( $RANDOM%255 ))

        if (( N == 6 ))
        then
            printf '4%x' $(( B%15 ))
        elif (( N == 8 ))
        then
            local C='89ab'
            printf '%c%x' ${C:$(( $RANDOM%${#C} )):1} $(( B%15 ))
        else
            printf '%02x' $B
        fi

        for T in 3 5 7 9
        do
            if (( T == N ))
            then
                printf '-'
                break
            fi
        done
    done

    echo
}

[ "$0" == "$BASH_SOURCE" ] && uuid

මෙම Tවිචල්ය ඉවත් කළ හැක සහ for Tපුඩුවක් වෙනස් කළ හැක: case $N in 3 | 5 | 7 | 9) printf '-';; esac(කැමති නම් වෙනම පිලිවෙත් මත හටගෙන).
වැඩිදුර දැනුම් දෙන තුරු විරාමය.

1
මම භාවිතා කර අනුවාදය පෙන්නුම් කරන github යොමුවෙන් කේතය කිරීමට අදහස් එකතු caseසම්පූර්ණයෙන්ම තුරන් කිරීමට ifප්රකාශ මෙන්ම අභ්යන්තර forප්රකාශයක්. එමඟින් කේතය වඩාත් පිළිවෙලට කරයි. දෙකම B%15විය යුතු B%16හා B%255විය යුතු බව සලකන්න B%256.
වැඩිදුර දැනුම් දෙන තුරු විරාමය.

ජනතාව එය ලබාගැනීමට හැකි අතර එය උත්සාහ එසේ url එක වෙත අන්තර්ජාලය තබා source <(curl url)කුමන හෝ
MrCholo

19

Uuidgen ලබා ගත නොහැකි තැන මෙම ස්ක්‍රිප්ට් “වන්-ලයිනර්” ප්‍රයෝජනවත් බව මට පෙනී ගියේය. පර්ල් හෝ පයිතන් සඳහා බාහිර මොඩියුල ස්ථාපනය කිරීම සඳහා වන ඕනෑම අවශ්‍යතාවයක් ද මෙය මග හැරේ.

od -x /dev/urandom | head -1 | awk '{OFS="-"; print $2$3,$4,$5,$6,$7$8$9}'

ස්නෝලියෝපාර්ඩ්, රෙඩ් හැට් වල්හල්ලා, සොලාරිස් 9 4/04 සහ නවතම ඒවා අත්හදා බැලීය. මෙය අද්විතීය නොවන බව මට කුතුහලයක් ඇත, නමුත් මම පසුගිය අවුරුදු 10 තුළ 'තිත්ත වී නැත. ඇත්ත වශයෙන්ම, head -1එය ද ආදේශ කළ හැකිය head -_other-value_ | tail -1.

පැහැදිලි කිරීමට,

/dev/randomහා /dev/urandomඅහඹු ජනක කර්නලය වේ.

od (ඔක්ටල් ඩම්ප්) හෙක්ස් නිමැවුම් ස්විචයක් (-x) ඇති අතර එය එක් පේළියකට බයිට් 16 ක් නිපදවයි.

head-n [| වලිගය -1] (එහිදී n> 0) පෙර නිමැවුමේ එක් පේළියක් පමණක් උකහා ගනී.

awkමුද්‍රණ ප්‍රකාශයේ කොමාව ඇති සෑම තැනකම OutputFieldSeparator යටි ඉරක් ලෙස සකසයි. ක්ෂේත්‍ර 2-9 ස්වාධීනව නියම කිරීමෙන්, අපි යටි ඉර පාලනය කර එක් එක් නිමැවුම් රේඛාව සමඟ 'ඔඩ්' උපසර්ගය දක්වන දර්ශක / ඕෆ්සෙට් කවුන්ටරය ඉවත් කරමු.

ප්‍රති result ලය 8-4-4-4-12කුඩා අකුරු වල රටාවකි a-f0-9.

993bb8d7-323d-b5ee-db78-f976a59d8284

1
දීප්තිමත්! පරායත්තයන් නොමැති තනි පේළියක්, BSD / macOS අනුකූල වේ ... නියමයි
dinigo

එපා නැහැ "වලිගය -1" භාවිතා කරන්න. ඔබ "od -x / dev / urandom" තනියම ධාවනය කරන්නේ නම්, එය දින නියමයක් නොමැතිව ඉදිරියට යන අතර, අහඹු දත්ත රේඛා අඛණ්ඩව නිපදවයි. "වලිගය -1" "අන්තිම" රේඛාව එනතෙක් එහි සදහටම වාඩි වී සිටිය හැකිය. එසේ නොමැති නම් එය හොඳ විසඳුමකි.
UncaAlby

කරුණාකර සටහන් කරන්න, වලිගය ඇත්තේ “පැහැදිලි කිරීම” තුළ විකල්ප පරාමිතියක් ලෙස පමණක් වන අතර එය හිසේ රේඛා ප්‍රතිදානය එකකට වඩා වැඩි වේ. එහි දී බයිට් 16 ක තනි පේළියක් අමුතු ලෙස ලැබීම සහතික කිරීම සඳහා වන අතර එය මුල් විධානයේ කොටසක් නොවේ. OD සිට හිස දක්වා වූ නළය දැනටමත් වලිගය -1 දක්වා නල සඳහා ප්‍රතිදානය සනීපාරක්ෂාව කරයි. මගේ අත්දැකීම් අනුව, වලිගය සදහටම බලා සිටින එකම අවස්ථාව වන්නේ -f තර්කයක් පමණි. වලිගය -1 භාවිතා කිරීම අවශ්‍ය වන්නේ හිසෙහි ප්‍රතිදානය එක් පේළියකට වඩා නිපදවන විට පමණක් බව පැහැදිලි කිරීම පැහැදිලි නොවූයේ නම් මම සමාව ඉල්ලමි.
dan

2
මෙය භාවිතා නොකරන්න , එය UUID පිරිවිතර සම්පූර්ණයෙන්ම උල්ලං lates නය කරයි. මේ ආකාරයට අහඹු ලෙස අවසර දී ඇත්තේ 4 UUID අනුවාදය පමණි.
jlh

3
questionjlh මෙම ප්‍රශ්නය අගුළු දමා ඇත්තේ මන්දැයි මට විශ්වාස නැත, නමුත් මෙන්න මෙම ප්‍රවේශය UUID-v4 අනුකූල වන ස්ථාවර අනුවාදයකි:od -x /dev/urandom | head -1 | awk '{OFS="-"; srand($6); sub(/./,"4",$5); sub(/./,substr("89ab",rand()*4,1),$6); print $2$3,$4,$5,$6,$7$8$9}'
ස්ටුවර්ට් පී. බෙන්ට්ලි

14

පයිතන් අතහැර දමා ඇති බවක් දැනෙන්නේ නැත:

python  -c 'import uuid; print uuid.uuid1()'
2d96768e-02b3-11df-bec2-001e68b9d147

කවචයේ එය භාවිතා කිරීමට:

myvar=$(python  -c 'import uuid; print uuid.uuid1()')

ජනනය කළ හැකි UUIDS වර්ග සඳහා පයිතන් ප්‍රලේඛනය UUID බලන්න .

පද්ධතිමය නොවන යන්ත්‍රයක systemd machine-id අනුකූල ගොනුවක් ජනනය කිරීම සඳහා, ඔබට මේ ආකාරයෙන් කිරීමට python භාවිතා කළ හැකිය:

python -c 'import re; import uuid; print re.sub("-","",str(uuid.uuid4()))' \
 > /etc/machine-id

uuid ගොඩනඟන ලද්දක්ද?
ඇලෙක්සැන්ඩර් මිල්ස්

පයිතන් කවදා හෝ වැඩ කර තිබේද? මට මෙම `ගොනුව '<string>", 1 වන පේළිය ආනයනය uuid; මුද්‍රණය uuid.uuid1 () ^ සින්ටැක්ස් දෝෂය: අවලංගු සින්ටැක්ස් `
ඇලෙක්සැන්ඩර් මිල්ස්

1
python3 -c "import uuid; print(uuid.uuid4())"Python3 සඳහා භාවිතා කරන්න
abdusco

11

පර්ල් e2fsprogsපැකේජය මත පදනම්ව UUID පුස්තකාලයක් සපයයි . මගේ ඩේබියන් පද්ධතියේ එය libuuid-perlපැකේජයයි. මෙන්න එක්-ලයිනර් උදාහරණයක්; man uuidවැඩි විස්තර සඳහා බලන්න :

$ perl -e 'use UUID;  UUID::generate($uuid);  UUID::unparse($uuid, $string);  print "my new UUID is $string \n";'
my new UUID is 3079e9ce-41d4-4cf3-9f90-d12f8bb752e4

පසුපෙළ හෝ $()අංකනය සහිත ෂෙල්ස් ස්ක්‍රිප්ටයකට එක් කිරීම මෙය ඉතා සුළු දෙයක් වනු ඇත :

#!/bin/bash
# ...do some stuff
$myvar = $(perl -e 'use UUID;  UUID::generate($uuid);  UUID::unparse($uuid, $string);  print "$string";')
# ...do some more stuff

+1 - මට ගොඩක් උදව් කරන්න!
rafa.ferreira


1

UUIDs අත්තනෝමතික ලෙස තොග වශයෙන් උත්පාදනය කිරීම සඳහා මම පයිතන් භාවිතයෙන් කුඩා බාෂ් ශ්‍රිතයක් ලිවීය:

# 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"')]))'
}

ඔබ කුඩා අකුරු වලට කැමති නම්, වෙනස් කරන්න:

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

වෙත:

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

1

කරුණාකර OSSP UUID පුස්තකාලය ( http://www.ossp.org/pkg/lib/uuid/ ) දෙස බලා එය ස්ථාපනය කිරීම ගැන සලකා බලන්න. සමහර ව්‍යාපෘති එය විකල්පයක් ලෙස ඉදිරිපත් කරයි (උදා: PostgreSQL). එය 3 වන අනුවාදය සහ 5 UUID අනුවාදය නිසියාකාරව හසුරුවයි , එය මගේ ස්ථාපිත (උදා: e2fsprogs) පුස්තකාලයට හැසිරවිය හැකි ප්‍රමාණයට වඩා වැඩි විය. වාසනාවකට මෙන්, openSUSE එය එක් ප්‍රධාන ගබඩාවක ඇත. W / Windows (උදා: සිග්වින්) හෝ MySQL වැඩ කිරීමට අනුවාදයක් ලබා ගැනීම දෝෂයකි. මට ඇත්ත වශයෙන්ම v3 සහ v5 UUIDs අවශ්‍ය බැවින් ලිනක්ස් / පෝස්ට්ග්‍රෙස්ක්එල් / පයිතන් වෙත මාරු වීමට කාලය පැමිණ ඇති බව පෙනේ (සහ මම SQLyog GUI ට MySQL / MariaDB වෙත ප්‍රිය කළෙමි).


සම්පූර්ණයෙන්ම එකඟ වන්න! මගේ භාවිත නඩුව සඳහා එය පරිපූර්ණ වූ අතර එය -v3 ns:URL custom-dataබීජ පැළ කිරීමේ යාන්ත්‍රණය හරහා නාම අවකාශයට සහාය වේ.
රොබර්ටෝ ඇන්ඩ්‍රේඩ්

1

සමහරු මෙහි පැමිණෙනු ඇතැයි මට විශ්වාසයි, ඔවුන්ගේ ස්ක්‍රිප්ට් වල භාවිතා කිරීම සඳහා අද්විතීය හැඳුනුම්පතක් ජනනය කිරීමට පහසු ක්‍රමයක් සොයමින් සිටින අතර එය සත්‍ය UUID එකක් වීමට අවශ්‍ය නොවේ.

එසේ නම්, ඔබට පහත සඳහන් දෑ කළ හැකිය, එමඟින් තත්පරයට අනන්‍ය වූ හැඳුනුම්පතක් ජනනය වනු ඇත - එබැවින් ඔබ මෙය තත්පරයක් තුළ කිහිප වතාවක් ධාවනය කළහොත් ඔබට තවමත් එකම ප්‍රති .ලය ලැබෙනු ඇත.

MYID="U$(date +%s)"
echo $MYID

වත්මන් පද්ධති වේලාව මත පදනම්ව පහත සඳහන් පරිදි අයිඩී ජනනය කරනු ඇත:

U1454423662

සටහන: ඔබ ලිනක්ස් හි සිටී නම් හෝ මැක්හි කොරූටිල්ස් ස්ථාපනය කර ඇත්නම්, නැනෝ තත්පරයට අද්විතීය හැඳුනුම්පතක් ජනනය කිරීමට ඔබට පහත සඳහන් දෑ භාවිතා කළ හැකිය:

MYID="U$(date +%s%N)"
echo $MYID

නැතහොත් සෑම තැනකම පාහේ ක්‍රියා කළ යුතු නැනෝ තත්පරයට පයිතන් පදනම් කරගත් විසඳුමක් ඔබ කැමති නම්, ධාවනය කරන්න:

MYUID=U$(python -c'import time; print repr(time.time())')
echo $MYUID

1
මෙය සමස්තයක් වශයෙන් ඉතා නරක පුරුද්දකි. නවීන පරිගණක බොහෝ දේ සමාන්තරව ධාවනය කිරීමට සහ අනුක්‍රමික කාර්යයන් ඉක්මනින් සම්පූර්ණ කිරීමට පරිපූර්ණ හැකියාවක් ඇත, නමුත් මෙම හැඳුනුම්පත තවත් තත්පරයක ඇතුළත ඇති ඕනෑම ආයාචනා සඳහා සමාන වේ. මෙම ස්ක්‍රිප්ට් එකවර ක්‍රියාත්මක වන වෙනත් පරිගණක ගැන සඳහන් නොකරමු. වඩා හොඳ-නමුත්-තවමත්--හොඳ නැහැ විකල්පය වනු mktemp -uදී මෙන් MYID="$(mktemp -u)". නැවත ආරම්භ වන තුරු හිස් තාවකාලික ලිපිගොනු තැබීමට ඔබට හැකි නම්, පහත -uMYID="$(mktemp)"
ක්‍රිස් හැරින්ග්ටන්

හේයි ... දෙවන කරුණට ඇති එකම සුවිශේෂී කරුණු ... මම ඉහත සටහන් කිහිපයක් එකතු කරමි ...
බ්‍රැඩ් පාර්ක්ස්

1

මෙම ත්‍රෙඩ් එක විවිධාකාර උදාහරණ සහිතව මට ඇත්තෙන්ම ප්‍රයෝජනවත් විය. මට නිතරම විවිධ පරිසරයන්ගෙන් uuid කාර්යයන් අවශ්‍ය වේ. මම පිරිසිදු බාෂ් උදාහරණ වලට ඇලුම් කරන අතර, සමහර විට වෙනත් භාෂාවකින් පුස්තකාලයක් භාවිතා කිරීම වඩාත් පහසු වේ.

එබැවින් සම්පූර්ණත්වය සඳහා, රුබී (1.9.3+) හි ආරක්ෂිත හැන්ඩම් මොඩියුලය ඇත, එහි ප්‍රයෝජනවත් හැෂ් සහ හැඳුනුම් කාර්යයන් ගණනාවක් අඩංගු වේ. Bash cli වෙතින් ඔබට මෙය කළ හැකිය.

ruby -r securerandom -e 'puts SecureRandom.uuid'

0
ran=`od -X -A n /dev/random | head -1 | cut -c3-38`

correlation_id=`echo ${ran} | cut -c1-8`-`echo ${ran} | cut -c10-13`-`echo ${ran} | cut -c14-17`-`echo ${ran} | cut -c19-22`-`echo ${ran} | cut -c23-26``echo ${ran} | cut -c28-35`

3
තව ටිකක් පැහැදිලි කිරීම ඔබේ පිළිතුරට උපකාරී වනු ඇත
ඩේව් එම්

x = od -X -A n /dev/random | head -1 | cut -c3-38 ඔබට මෙය පහත ප්‍රතිරාවය ලබා දෙයි $ x 4151540a 1f7d0bef 8a0725fb d26183a3 uuid = echo ${x} | cut -c1-8- echo ${x} | cut -c10-13- echo ${x} | cut -c14-17- echo ${x} | cut -c19-22- echo ${x} | cut -c23-26``echo ${x} | cut -c28-35 echo $ uuid 4151540a-1f7d-0bef-8a07-25fbd26183a3
andyfff

ඩේව් එම්, වසර ගණනාවකට පසු ආපසු යමින්, මෙය මගේ වර්තමාන දැනුමේ අද්දරයි. එය ටිකක් බිඳ දැමීම උපකාරී වේ යැයි සිතමු. cheers, andyfff
andyfff

-1

ඔබ ජාවා 10 භාවිතා කරන්නේ නම්.

$ jshell
jshell> import java.util.*
jshell> String id = UUID.randomUUID().toString();

ජාවා 10 යනු බාෂ් නොවේ.
kasperd

ජාවා වැඩසටහනක් ක්‍රියාත්මක නොකර ඔහුට ටර්මිනලය මත යූඅයිඅයිඩී උත්පාදනය කළ හැකි ආකාරය පිළිබඳ උදාහරණයක් මම ලබා දුන්නා. මිනිසුන් dbus-uuidgen සහ uuidgen භාවිතා කිරීම පිළිබඳ උදාහරණ ලබා දුන්නා . Jshell භාවිතා කිරීමේ වරද කුමක්ද?
amit

1
කාරණය සලකා බලන්න, ඔබ අන්තර්ක්‍රියාකාරී විධානයක් ලෙස නොව , බාෂ් ස්ක්‍රිප්ටින්jshell සඳහා භාවිතා කළ හැකි උදාහරණයක් ලබා දිය යුතුය . මුල් පෝස්ට් එකෙන් එය ඉතා පැහැදිලිය.
සැම්වීන්

ඔබ යමක් ලැයිස්තු ගත කළ යුතු නම්, ඔබට කළ හැකි echo "System.out.println(java.util.UUID.randomUUID().toString())" | /Library/Java/JavaVirtualMachines/openjdk-11.0.1.jdk/Contents/Home/bin/jshell -s | grep -v ">" නමුත් එය වඩා දිගු සුළං වේ uuidgen.
mlk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.