使用Bash在给定的特定数字范围内生成随机浮点数

时间:2018-05-15 21:21:19

标签: linux shell random awk

有人可以帮助我在bash(shell)中使用给定的特定数字范围生成随机浮点数。我发现下面的命令,但是他们还有其他选择吗? (使用awk或$ rand命令。)

jot -p2  0 1

3 个答案:

答案 0 :(得分:6)

如果你有GNU coreutils,你可以选择:

seq 0 .01 1 | shuf | head -n1 

答案 1 :(得分:2)

要生成3到17之间的1个随机浮点数:

$ awk -v min=3 -v max=17 'BEGIN{srand(); print min+rand()*(max-min+1)}'
16.4038

要生成3到17之间的5个随机浮点数:

$ awk -v min=3 -v max=17 -v num=5 'BEGIN{srand(); for (i=1;i<=num;i++) print min+rand()*(max-min+1)}'
15.1067
4.79238
3.04884
11.3647
15.1132

按摩以适应。

答案 2 :(得分:2)

如果没有任何外部工具,请在3到16.999之间生成随机实数:

a=3
b=17
echo "$((a+RANDOM%(b-a))).$((RANDOM%999))"