文章

shell生成随机数

默认Bash支持通过$RANDOM来生成随机数,范围是0-32767。

echo $RANDOM

如果需要更大的范围,可以使用$RANDOM的乘积来生成更大的随机数。

echo $((RANDOM * RANDOM))

如果需要生成一个范围在1到100之间的随机数,可以使用以下命令:

echo $((RANDOM % 100 + 1))

如果需要生成一个范围在1到100之间的随机数,并且不包含1和100,可以使用以下命令:

echo $((RANDOM % 98 + 2))

生成指定范围的随机数

假如要生成100到200的随机数可以使用以下命令:

echo $((RANDOM % 101 + 100))

如果要生成100到200之间的随机数,并且不包含100和200,可以使用以下命令:

echo $((RANDOM % 98 + 102))

使用awk生成随机数

awk也可以用来生成随机数,范围是0到1之间的浮点数:

awk 'BEGIN { srand(); print rand() }'

awk也可以用来生成指定范围的随机数:

awk 'BEGIN { srand(); print int(100 + rand() * 101) }'

使用date生成随机数

date也可以生成随机数,需要和其它命令搭配

date +%s%N # 生成19位数 date +%s%N | cut -c6-13 # 取八位数字 date +%s%N | md5sum | head -c 8 # 八位字母和数字的组合

生成1到50的随机数

#!/bin/bash function rand(){ min=$1 max=$(($2- $min + 1)) num=$(date +%s%N) echo $(($num % $max + $min)) } rnd=$(rand 1 50) echo $rnd exit 0

使用openssl生成随机数

openssl也可以生成随机数,范围是0到255之间的随机数:

openssl rand -hex 4
本文由作者按照 CC BY 4.0 进行授权