我想制作一个 bash 脚本,根据终端中给出的参数连续运行一定数量的 python 脚本(它们运行的顺序并不重要)。
类似于:
kwargs = kwarg1 kwarg2 kwarg3
if kwarg1: python script1.py
if kwarg2: python name2000.py
if kwarg3: python program30.py
但是可以选择接受任意数量的关键字,只要它们与脚本匹配即可。
这将如何完成?
最佳答案
您可以做很多事情来添加它,但这是您要求的最简单的:
#!/bin/bash
for script in $*; do
python $script.py
done
将其放入新文件中,例如“run_python.bash”,并使其可执行(chmod a+w run_python.bash
)。
然后你通过:run_python.bash one 二三
运行它,它将执行 one.py,然后是two.py,然后是 Three.py。
如果您想在 for
循环中使用 if
结构(即,如果您的关键字与脚本名称不匹配),则简单版本如下所示:
#!/bin/bash
for script in $*; do
if [ $script == 'kwarg1' ]; then
python script1.py
fi
if [ $script == 'kwarg2' ]; then
python name2000.py
fi
if [ $script == 'kwarg3' ]; then
python program30.py
fi
done
这将根据您在命令行中输入的关键字的顺序执行您告诉它的任何内容。
附:这与python无关。无论您是调用 python、ls 还是任何可以在 bash 中运行的其他内容,该脚本的工作方式都是相同的。
关于python - 使用参数从 bash 脚本顺序调用多个 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52844472/