📜  Linux 中的 RANDOM Shell 变量及示例

📅  最后修改于: 2022-05-13 01:57:28.928000             🧑  作者: Mango

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

生成 n 个随机整数

注意:将 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 显示随机整数。输出是:

给定上限时生成随机数的shell脚本

给定上限和下限时生成随机整数

假设您想在 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"

输出是:

给定上限和下限时生成随机整数