如何生成随机的个位数?
我利用seq -w 10它给出了以下输出
01
02
03
04
05
06
07
08
09
10
Run Code Online (Sandbox Code Playgroud)
进一步的逻辑如何实现,以便从 0 到 10 中只随机选择 1 个数字
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 %。
对于数字8和9,100 * 3276 / 32767 ? 9.99786 %