使用“$RANDOM”在 Bash 中生成随机字符串
- 2024-11-14 08:29:00
- admin 原创
- 16
问题描述:
我正在尝试使用 Bash 变量$RANDOM
从一个包含整数和字母数字的变量中创建一个由 8 个字符组成的随机字符串,例如var="abcd1234ABCD"
。
我怎样才能做到这一点?
解决方案 1:
使用参数扩展。${#chars}
是可能的字符数,%
是模运算符。${chars:offset:length}
选择位置处的字符offset
,在我们的例子中为 0 - length($chars)。
chars=abcd1234ABCD
for i in {1..8} ; do
echo -n "${chars:RANDOM%${#chars}:1}"
done
echo
解决方案 2:
对于那些在 bash 中寻找随机字母数字字符串的人来说:
LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 64
与有据可查的功能相同:
function rand-str {
# Return random alpha-numeric string of given LENGTH
#
# Usage: VALUE=$(rand-str $LENGTH)
# or: VALUE=$(rand-str)
local DEFAULT_LENGTH=64
local LENGTH=${1:-$DEFAULT_LENGTH}
LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c $LENGTH
# LC_ALL=C: required for Mac OS X - https://unix.stackexchange.com/a/363194/403075
# -dc: delete complementary set == delete all except given set
}
解决方案 3:
选项 1 - 特定长度,仅限小写字母、数字和破折号
cat /proc/sys/kernel/random/uuid
或者在 macOS 上只需使用uuidgen
在接下来的 100 年里,每秒生成 10 亿个 UUID 后,只创建一个重复的概率约为 50%。如果地球上每个人都拥有 6 亿个 UUID,则出现一个重复的概率约为 50%
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件
热门标签
云禅道AD