如何在 bash 中以随机数的上限随机重复一个函数次数

How to repeat a function a random number of times with an upper limit on the random number in bash

我正在尝试使用 bash 重复 运行 一个 python 脚本随机次数。但是,为了避免 运行 多次使用脚本,我想对它可以 运行 的次数设置一个上限。目前我正在使用 'modulo' 运算符来 return 余数,然后在执行循环时将其用作字符串:

 #!/bin/bash

RANGE=1000

number=$RANDOM
let "number %= $RANGE"

for run in {1..$number}
do
  python script.py
done

随机数有效(即 $number 是 1-1000 之间的随机数),但问题是这似乎只 运行ning 脚本一次,无论随机数是.

可能是什么问题?

问题出在这一行:

for run in {1..$number}

由于变量不允许(扩展)在范围 {..} 内,因此无论 运行 的值是多少,您的循环都只会 一次 =13=].

这样使用:

#!/bin/bash

range=1000
number=$((RANDOM % range))

for ((run=1; run <= number; run++)); do
   python script.py
done