bash - 如何在bash中随机数的上限重复一个函数

标签 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 之间的随机数),但问题是无论随机数是多少,这似乎只运行一次脚本.

可能是什么问题?

最佳答案

问题是这一行:

for run in {1..$number}

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

像这样使用它:

#!/bin/bash

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

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

关于bash - 如何在bash中随机数的上限重复一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28328769/

相关文章:

javascript - 为什么内部 Javascript 循环会阻止外部循环中断(即无限循环)?

linux - 如何确定 NTP 通信状态

c - 循环后打印问号

bash - 如何使 bash 完成忽略某些目录?

Java:带有对象和空值的 Arrays.sort(...)

javascript - continue 在嵌套的 for 循环中做了什么?

javascript - JavaScript 中的定时 for 循环

python - 编辑列表中的元素 - python

bash - 使用自定义作为命令行参数运行新的 zsh 和 bash shell

bash - 使用 bash 脚本将作业添加到 incrontab