首页 > 解决方案 > 在 argparse 中传递不同的参数组合

问题描述

问题

我正在尝试运行一些用 Python 编写的代码。代码的行为现在取决于三个参数(我们称它们param1为 、param2param3)。

因为这些参数中的每一个都可以采用多个值。运行所有组合(超过 70 个)似乎是一项不可能完成的任务。我看到人们使用 shell 脚本来自动化这个过程。但是,我写的以下shell不起作用(我对shell不熟悉)。

#!/bin/sh
for param1 in "a" "b" "c" "d" "e"
do
    for param2 in "independent" "dependent"
    do
        for param3 in 0 1 2 3 4 5
        do
            python exp.py --param1 $(param1) --param2 $(param2) --param3 $(param3)
        done
    done
done

有人可以帮助我吗?先感谢您。

标签: pythonshell

解决方案


错误的括号,使用{and }

#!/bin/sh
for param1 in "a" "b" "c" "d" "e"
do
    for param2 in "independent" "dependent"
    do
        for param3 in 0 1 2 3 4 5
        do
            python exp.py --param1 ${param1} --param2 ${param2} --param3 ${param3}
        done
    done
done

推荐阅读