Linux 中的 RANDOM Shell 变量及示例
RANDOM 是一个 shell 变量,用于在 Linux 中生成随机整数。它是一个内部 bash 命令,它返回一个 0 到 32767 范围内的伪随机 16 位整数。它在每次调用时返回一个不同的整数。为了增强随机化过程,可以为随机变量设置一个初始值,该初始值可以是 epoch 中的时间、当前 shell 的进程 ID 等。
使用 epoch 中的时间来初始化生成器的语法:
RANDOM=$(date +%s)
使用当前 shell 的进程 ID 来初始化生成器的语法:
RANDOM=$$ #PID of shell is stored in $$ variable
使用RANDOM 变量
生成随机整数
可以通过使用 echo 命令直接从随机变量中读取来生成随机整数。它将显示 0 到 32767 范围内的随机整数。
echo $RANDOM
生成“n”个随机整数
您可以使用循环使用 RANDOM shell 变量生成多个随机数。以下代码将生成 0 到 32767 范围内的 5 个随机值。
RANDOM=$$
for i in `seq 5`
do
echo $RANDOM
done
注意:将 5 替换为您选择的随机值的数量。
给定上限时生成随机整数
考虑您要在 Y 内生成一个随机整数(其中不包括 Y)。实现这一点的格式是:
R=$(($RANDOM%Y))
为了包括上限 Y,模运算的除数将为 Y+1。格式为:
R=$(($RANDOM%Y+1))
例子:
echo $(($RANDOM%10)) #This will display a random integer between 0 and 9.
echo $(($RANDOM%11)) #This will display a random integer between 0 and 10.
当从命令行的 shell 脚本中获取用户的输入以生成整数时,可以使用以下代码:
Y=$1
div=$((Y+1))
RANDOM=$$
R=$(($RANDOM%$div))
echo $R
Y 存储上限, echo $R 显示随机整数。输出是:
给定上限和下限时生成随机整数
假设您想在 X 和 Y 之间生成一个随机整数,其中 X 是下限 (X≠0),Y 是上限。实现这一点的格式是:
RANGE=$((Y-X+1))
R=$(($(($RANDOM%$RANGE))+X))
例子:
echo "lower limit:"
read X
echo "upper limit:"
read Y
RANGE=$((Y-X+1))
RANDOM=$$
R=$(($(($RANDOM%$RANGE))+X))
echo "The random integer is $R"
输出是: