python - Bash进程执行逻辑

标签 python bash scripting

我有许多脚本要运行,其中一些脚本有一个或多个必须首先完成的脚本。我已经阅读了许多展示 bash 控制运算符如何工作的示例,但没有找到任何好的示例来解决我试图实现的逻辑的复杂性。

我有 p_01.py 和 p_03.py,它们都是 p_09.py 的要求,但也有只需要 p_01 的单独进程。例如:

((python p_01.py & python p_03.py) && python p_09.py) & 
(python p_01.py && 
    (
        (python p_05.py;
         python p_10.py) &
        (python p_08.py;
         python p_11.py)
    )
)
wait $(jobs -p)

我的问题是,如何完成所有仅在其要求后运行的脚本,而不重复运行脚本(例如 p_01.py,您会注意到上面使用了两次)?我正在寻找带有一些细节的概括答案,因为实际上依赖项比上面的示例更多/嵌套。谢谢!

最佳答案

如果您根据脚本的依赖关系来考虑脚本,则很难直接转换为主脚本。考虑使用 make,它可以让您直接表达这些依赖关系:

SCRIPTS = $(wildcard *.py)

.PHONY: all
all: $(SCRIPTS)

$(SCRIPTS):
    python $@

p_05.py p_08.py p_09.py: p_01.py
p_09.py: p_03.py
p_10.py: p_05.py
p_11.py: p_08.py

运行 make -B -j4 将运行所有 Python 脚本,同时最多可并行执行 4 个脚本。

关于python - Bash进程执行逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49806642/

相关文章:

python - gevent.StreamServer 和非阻塞 raw_input()?

python - jupyter 笔记本中的 XGBoost 崩溃内核

bash - 如何打印某些标签之间的数据?

bash - 在 shell 脚本之间导出变量

python - statsmodels.api 收敛失败

python - python可以输出多个随机数吗?它们怎么可能是均匀分布的,又是随机的呢?

bash - perl 脚本结束时会发生什么?

c++ - 仅计算 *.cpp 和 *.h 类型文件中的行数

powershell - 你能写一个与 BGInfo 做同样事情的 powershell 脚本吗?

python-3.x - 如何使用 python 3 遍历 google 工作表中的所有工作表?