如何使用shell生成随机的个位数

cod*_*c24 1 shell-script

如何生成随机的个位数?

我利用seq -w 10它给出了以下输出

01
02
03
04
05
06
07
08
09
10
Run Code Online (Sandbox Code Playgroud)

进一步的逻辑如何实现,以便从 0 到 10 中只随机选择 1 个数字

tha*_*isp 6

shuf -i0-9 -n1
Run Code Online (Sandbox Code Playgroud)

shuf生成随机排列,-i接受一个范围参数,所以我们提供范围0-9-n1就像 一样head,只打印随机数字的第一个。


或者您可以使用RANDOM类似 Korn 的 shell(ksh、zsh、bash、yash;还有 busybox sh)的内置 shell 变量。

echo "$((RANDOM % 10))"
Run Code Online (Sandbox Code Playgroud)

RANDOM是(从man bash

0 到 32767 之间的随机整数

这意味着某些数字的可能性非常小,如果这很重要的话。

对于数字0-7,它是100 * 3277 / 32767 ? 10.00092 %

对于数字89100 * 3276 / 32767 ? 9.99786 %

  • 我不想打印“10”,因为问题在开头说“如何生成随机的一位数”。所以我打印了一个数字。可以轻松调整以打印任何内容。 (3认同)