我正在尝试确定一些可以与$ RANDOM一起使用的选项,以便从特定范围生成随机数,而无法找到一个。有人可以帮帮我吧。 echo $ RANDOM从shell生成数字但是随机而不是我的范围。我想在1到100的范围内生成随机数。
答案 0 :(得分:2)
如果你有GNU排序:
rand=$( seq $start $end | sort -R | head -1)
调用外部工具,因此比使用$ RANDOM执行算术要慢几毫秒。
答案 1 :(得分:1)
尝试使用shell
函数执行此操作:
intrandfromrange() { echo $(( ( RANDOM % ($2 - $1 +1 ) ) + $1 )); }
intrandfromrange 1 100
foo() { }
是shell函数的框架。$((...))
给出随附的arithmetic expression。%
代表模数,是除法运算的剩余部分。$1
& $2
是函数的第一个和第二个参数。答案 2 :(得分:1)
使用bash的另一种解决方案:
printf '%s\n' {1..100} | shuf | head -1
答案 3 :(得分:0)
如果你对第三代语言开放:
python -c 'import random; print(random.randint(1, 100))'
答案 4 :(得分:0)
你不需要" shuf |头-1"。 " shuf -n 1 "
另外:
seq 1 100 | shuf -n 1
类似的功能可能是:
rnd () {
seq $1 $2 | shuf -n ${3:-1}
}
因此rnd 1200 5000 5将在1200和5000之间输出5个随机数。无论何时需要一些。如果您只需要一个并且匆忙,则无需指定1.