我试图使用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之间的随机数),但是问题在于,无论随机数是什么,它似乎只运行了一次脚本。
可能是什么问题?
问题是这一行:
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)