我有一个 Python 脚本,使用该parser包设置选项标志(例如-d dataset等-s size,最后将结果写入文件中)。如何多次(顺序)运行该命令,每次运行使用不同的选项标志?
我需要这样的东西:
datasets = [a,b,c]
sizes = [100,200,300]
for dataset in dataset: #specify parameters
for size in sizes: #specify more parameters
python script.py -d dataset -s size #run script
Run Code Online (Sandbox Code Playgroud)
最好的(甚至是“a”)方法是什么?
将伪/python 代码直接翻译为bash,用数组代替lists 和经典for循环:
#!/bin/bash
datasets=('a' 'b' 'c')
sizes=(100 200 300)
for dataset in "${datasets[@]}"; do
for size in "${sizes[@]}"; do
python script.py -d "$dataset" -s "$size"
done
done
Run Code Online (Sandbox Code Playgroud)
如果sizes更像是一个range,而不是手工挑选的值列表,您可以使用大括号扩展:
for size in {100..300..100}; do
# ...
done
Run Code Online (Sandbox Code Playgroud)
或算术for循环:
for ((size=100; size<=300; size+=100)); do
# ...
done
Run Code Online (Sandbox Code Playgroud)