如何让Bash循环中Python脚本调用严格按顺序执行?
你的Bash脚本默认就是严格顺序执行的
你当前的Bash脚本本来就满足严格顺序执行的需求——在Bash中,除非你在命令末尾加上&让进程后台运行,否则每一条命令都会等待前一条完全执行完毕后,才会启动下一条。
你的嵌套循环里,每次调用python script.py -a1 $arg1 -a2 $arg2时,Bash会等待这个Python脚本运行结束(不管是正常退出还是异常终止),才会进入下一次循环迭代,完全符合你“等待上一次调用完成后再启动”的要求。
如果需要验证这个行为,可以给Python脚本加个简单的日志和延时:
import argparse import time parser = argparse.ArgumentParser() parser.add_argument('-a1') parser.add_argument('-a2') args = parser.parse_args() print(f"[{time.ctime()}] 启动任务: a1={args.a1}, a2={args.a2}") # 模拟耗时操作 time.sleep(2) print(f"[{time.ctime()}] 完成任务: a1={args.a1}, a2={args.a2}")
运行你的Bash脚本后,会看到每一条任务的“启动”消息都会在前一条的“完成”消息之后出现,间隔约2秒,直观证明顺序执行的特性。
内容的提问来源于stack exchange,提问作者Gojih
相关产品推荐
相关产品推荐

