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

时间:2015-02-04 18:31:49

标签: bash loops for-loop random

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

 #!/bin/bash

RANGE=1000

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

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

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

问题可能是什么?

1 个答案:

答案 0 :(得分:4)

问题在于这一行:

for run in {1..$number}

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

像这样使用:

#!/bin/bash

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

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