确保程序在有序序列中运行

时间:2012-05-16 13:58:25

标签: bash

这是我的情况:

我想按顺序依次运行Python脚本,从scriptA.py开始。当scriptA.py完成时,应运行scriptB.py,然后运行scriptC.py。在这些脚本按顺序运行后,我需要运行rsync命令。

我打算像这样创建bash脚本:

#!/bin/sh
python scriptA.py
python scriptB.py
python scriptC.py
rsync blablabla

这是性能和稳定性的最佳解决方案吗?

2 个答案:

答案 0 :(得分:5)

要仅在上一个命令成功完成后运行命令,您可以使用逻辑AND:

python scriptA.py && python scriptB.py && python scriptC.py && rsync blablabla

因为整个语句只有在全部为真时才为真,所以bash“短路”并且只在前一个语句成功完成时才开始下一个语句;如果一个失败,它会停止并且不会启动下一个命令。

这是你正在寻找的行为吗?

答案 1 :(得分:3)

如果您对python有一些经验,那么编写一个从其他脚本导入并执行相关函数的python脚本几乎肯定会更好。这样你就可以使用pythons异常处理了。您也可以在python中运行rsync。