Bash 脚本控制需要随机种子才能运行的 Python 脚本(“main.py”)。为了获得模拟的几个实现,我想为每个实现一个随机的随机种子。
我想初始化(在 Bash 脚本中)一个随机的 NEXP 整数数组,但我认为没有正确完成。确实,我对数组进行了错误的初始化。这是代码:
NEXP=10
array_seed = [$NEXP]
for j in `seq 0 1 $NEXP`; do
array_seed[$j]=$RANDOM
echo $array_seed[$j]
done
for A in `seq 0 0.1 1`; do #A is a parameter of the simulation
for i in `seq 0 1 $NEXP`; do #10 realiz. of the process for each A
SEED=$array_seed[$i]
./main.py $A $SEED > output-$A-$i.dat
done
done
在这里我得到了什么
23041[0]
23041[1]
23041[2]
23041[3]
...
问题 #1(已解决):我做错了什么?以及如何将 $NEXP - 1 放在seq中以获取索引从 0 到 NEXP-1 的数组?我试过用双括号表示它不起作用。
答案(由 Jothan Chanes 爵士):
NEXP=10
array_seed = [$NEXP]
for i in `seq 0 1 $(($NEXP-1))`; do
array_seed[$i]=$RANDOM
echo ${array_seed[$i]}
done
问题#2:这是解决获得独立实现模拟问题的好方法吗?我怎样才能进一步减少模拟/实验之间的相关性?
问题 #3:最后,我也应该处理 Bash 伪随机生成器的种子吗?
谢谢!