这是我的情况:
我想按顺序依次运行Python脚本,从scriptA.py开始。当scriptA.py完成时,应运行scriptB.py,然后运行scriptC.py。在这些脚本按顺序运行后,我需要运行rsync命令。
我打算像这样创建bash脚本:
#!/bin/sh
python scriptA.py
python scriptB.py
python scriptC.py
rsync blablabla
这是性能和稳定性的最佳解决方案吗?
答案 0 :(得分:5)
要仅在上一个命令成功完成后运行命令,您可以使用逻辑AND:
python scriptA.py && python scriptB.py && python scriptC.py && rsync blablabla
因为整个语句只有在全部为真时才为真,所以bash“短路”并且只在前一个语句成功完成时才开始下一个语句;如果一个失败,它会停止并且不会启动下一个命令。
这是你正在寻找的行为吗?
答案 1 :(得分:3)
如果您对python有一些经验,那么编写一个从其他脚本导入并执行相关函数的python脚本几乎肯定会更好。这样你就可以使用pythons异常处理了。您也可以在python中运行rsync。