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

如何在bash中以随机数的上限重复函数的随机数,bash,loops,for-loop,random,Bash,Loops,For Loop,Random,我正在尝试使用bash随机多次重复运行python脚本。但是,为了避免脚本大量运行,我想对它可以运行的次数设置一个上限。目前,我使用“模”运算符返回余数,然后在执行循环时将其用作字符串: #!/bin/bash RANGE=1000 number=$RANDOM let "number %= $RANGE" for run in {1..$number} do python script.py done 随机数有效(即,$number是一个介于1-1000之间的随机数),但问题是,

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

 #!/bin/bash

RANGE=1000

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

for run in {1..$number}
do
  python script.py
done
随机数有效(即,
$number
是一个介于1-1000之间的随机数),但问题是,无论随机数是什么,它似乎只运行脚本一次

可能是什么问题?

问题是这一行:

for run in {1..$number}
由于变量不允许(扩展)在范围
{..}
内,因此无论
$number的值是多少,循环都只运行一次

像这样使用它:

#!/bin/bash

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

for ((run=1; run <= number; run++)); do
   python script.py
done
#/bin/bash
范围=1000
数字=$((随机百分比范围))

对于((run=1;run您不能在
{1..1000}
构造中使用变量。)我已经删除了另外两条注释。您最好不要在每次迭代中评估
number%range
,也不要冒这样做的风险。我想我会选择
range=1000;number=$($RANDOM%$range))
然后对((run=1;run)进行