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

2 random bash loops for-loop

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

 #!/bin/bash

RANGE=1000

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

for run in {1..$number}
do
  python script.py
done
Run Code Online (Sandbox Code Playgroud)

随机数有效(即,$number是介于1-1000之间的随机数),但是问题在于,无论随机数是什么,它似乎只运行了一次脚本。

可能是什么问题?

anu*_*ava 5

问题是这一行:

for run in {1..$number}
Run Code Online (Sandbox Code Playgroud)

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

像这样使用它:

#!/bin/bash

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

for ((run=1; run <= number; run++)); do
   python script.py
done
Run Code Online (Sandbox Code Playgroud)