如何在bash中以随机数的上限重复函数的随机数
我正在尝试使用bash随机多次重复运行python脚本。但是,为了避免脚本大量运行,我想对它可以运行的次数设置一个上限。目前,我使用“模”运算符返回余数,然后在执行循环时将其用作字符串:如何在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之间的随机数),但问题是,
#!/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)进行