下面我将详细讲解一下关于“Linux Shell 生成随机数和随机字符串的方法”的完整攻略。
生成随机数
有时我们需要生成随机数,可以使用 Shell 内置的 $RANDOM
变量。它可以返回一个介于0~32767之间的随机数。
下面是一个 $RANDOM
的示例:
#!/bin/bash
for i in {1..10}
do
echo "第 $i 个随机数: $RANDOM"
done
以上脚本可以打印10个随机数。
生成随机字符串
我们也可以通过 Shell 来生成随机字符串。以下是3种方法:
方法1:用 /dev/urandom 和 tr 命令
/dev/urandom
是一个Linux下生成随机数的接口,我们可以通过它来产生随机字符串。
#!/bin/bash
head /dev/urandom | tr -dc A-Za-z0-9 | head -c 20 ; echo ''
其中:
head /dev/urandom
产生无限随机字符流tr -dc A-Za-z0-9
对字符流进行过滤,剔除非字母和数字字符head -c 20
输出20个字符echo ''
跳行输出,否则输出在同一行。
方法2:用日期和散列函数
#!/bin/bash
date +%s%N | md5sum | head -c 20 ; echo ''
其中:
date +%s%N
输出从1970年1月1日至今的纳秒数时间戳md5sum
优秀的散列函数,将产生相同输入时必定产生相同输出,相同输出对应相同输入head -c 20
输出所有md5字符串的前20位
方法3:用 UUID
UUID 是一个128位的唯一标识符,它在 Linux 中是可以随时使用的。
#!/bin/bash
cat /proc/sys/kernel/random/uuid | cut -d '-' -f 1 | tr -d '\n' ; echo ''
其中:
cat /proc/sys/kernel/random/uuid
产生唯一标识符cut -d '-' -f 1
取出第一部分tr -d '\n'
去掉所有换行符
以上三种方法都可以在 Bash Shell 中用来产生随机字符串。
希望这篇攻略能帮到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux Shell 生成随机数和随机字符串的方法示例 - Python技术站