这是我的情况:确保程序按顺序运行
我想按顺序依次运行Python脚本,从scriptA.py开始。当scriptA.py完成后,scriptB.py应该运行,然后运行scriptC.py。在这些脚本按顺序运行之后,我需要运行一个rsync命令。
我打算创建bash脚本是这样的:
#!/bin/sh
python scriptA.py
python scriptB.py
python scriptC.py
rsync blablabla
这是对性能比较稳定的最佳解决方案?
这是我的情况:确保程序按顺序运行
我想按顺序依次运行Python脚本,从scriptA.py开始。当scriptA.py完成后,scriptB.py应该运行,然后运行scriptC.py。在这些脚本按顺序运行之后,我需要运行一个rsync命令。
我打算创建bash脚本是这样的:
#!/bin/sh
python scriptA.py
python scriptB.py
python scriptC.py
rsync blablabla
这是对性能比较稳定的最佳解决方案?
要运行一个命令后前一个命令成功完成后,您可以使用一个逻辑AND:
python scriptA.py && python scriptB.py && python scriptC.py && rsync blablabla
因为整个语句将是真实的,只有当所有的都是真的,bash的“短路”并且只有在前一个成功完成时才开始下一个语句;如果一个失败,它会停止并且不会启动下一个命令。
这是您正在寻找的行为吗?
非常感谢您的回答非常有用! – user1147636
如果你有一些python的经验,那么编写一个python脚本可以导入并执行另一个脚本中的相关函数,这几乎肯定会更好。这样你就可以使用pythons异常处理。你也可以在Python中运行rsync。
感谢您的回复。我没有太多的经验使用Python不幸的 – user1147636
那么从@pjmorse这个答案这是你的最佳解决方案 – snies
你的脚本已经按照你想要的顺序运行它们。如果你可以多描述一下你想要的东西,最好能得到相关的答案。 – anubhava
for @anubhava and downvotes,please read the pjmorse answer – user1147636
如果你想创建一个bash脚本,那么你希望文件的第一行读取'#!/ bin/bash'。现在,它将在Bourne shell中运行。 –