如何在 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
我正在尝试使用 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