首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash中创建唯一的随机数(UUID)

问在bash中创建唯一的随机数(UUID)
EN

Unix & Linux用户
提问于 2019-02-14 09:34:16
回答 4查看 37.6K关注 0票数 24

我想创建随机唯一数字(UUID)如下

代码语言:javascript
复制
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff

首先我试了这个

代码语言:javascript
复制
$ rndnum=` echo $RANDOM"-"echo $RANDOM"-"echo $RANDOM"-"echo $RANDOM"-"echo $RANDOM`

$ echo $rndnum
30380-echo 21875-echo 14791-echo 32193-echo 11503

创建以下内容的正确方法是什么(其中f是任意数字)?

代码语言:javascript
复制
ffffffff-ffff-ffff-ffff-ffffffffffff
EN

回答 4

Unix & Linux用户

回答已采纳

发布于 2019-02-14 09:56:22

在Linux上,util-linux/util-linux-ng包提供了一个生成UUID的命令:uuidgen。

代码语言:javascript
复制
$ uuidgen
5528f550-6559-4d61-9054-efb5a16a4de0

引用手册:

uuidgen程序使用libuuid(3)库创建(并打印)一个新的通用唯一标识符(UUID)。在本地系统上创建的所有UUID中,以及在过去和将来在其他系统上创建的UUID中,可以合理地认为新的UUID是唯一的。uuidgen可以生成两种类型的UUID:基于时间的UUID和基于随机的UUID。默认情况下,如果存在高质量的随机数生成器,uuidgen将生成基于随机的UUID。否则,它将选择一个基于时间的UUID。可以使用-r或-t选项强制生成这两种UUID类型之一。

增编:“任择议定书”在评论中提供了与Presto DB的文档的链接。经过一些搜索,我找到了这个相关的讨论,其中明确提到了node.id属性确实是一个UUID。

在评论中添加frostschutz提供的信息:

作为uuidgen/libuuid方法的替代,您可以使用Linux内核本身公开的接口生成UUID:

代码语言:javascript
复制
$ cat /proc/sys/kernel/random/uuid
00db2531-365c-415c-86f7-503a35fafa58

每个请求都重新生成UUID。

票数 60
EN

Unix & Linux用户

发布于 2022-02-06 21:08:11

正如@frostschutz所提到的,您可以使用无依赖的解决方案:

代码语言:javascript
复制
cat /proc/sys/kernel/random/uuid

或保存变量

代码语言:javascript
复制
UUID=$(cat /proc/sys/kernel/random/uuid)

在Bash中,您可以简化为:

代码语言:javascript
复制
UUID=$(< /proc/sys/kernel/random/uuid)
票数 4
EN

Unix & Linux用户

发布于 2020-12-17 11:49:53

在raspberry PI (可能还有其他一些)上,命令是简单的:

uuid

它应该是预先安装的,但是如果没有,这应该可以做到:sudo apt install uuid

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/500572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档