18

我有 2 个 python 脚本 a.py 和 b.py,我想编写一个 bash 脚本来加载 a.py 并且在 a.py 完成之前不运行 b.py。简单地说

#!/usr/bin/env bash
python a.py
python b.py

但这很天真,检查 a.py 是否完成......我该怎么做?

4

2 回答 2

42

默认情况下,这将一个接一个地运行。


要检查是否python a.py已成功完成作为运行的必需条件python b.py,您可以执行以下操作:

#!/usr/bin/env bash
python a.py && python b.py

相反,尝试运行,如果没有成功终止python a.py,则只运行'python b.py' :python a.py

#!/usr/bin/env bash
python a.py || python b.py

要与后台进程同时运行它们:

#!/usr/bin/env bash
python a.py &
python b.py &

(回应评论) - 您可以将其链接到一行中的多个命令,例如:

python a.py && python b.py && python c.py && python d.py 
于 2012-12-03T22:03:05.773 回答
0
prompt_err() {

echo -e "\E[31m[ERROR]\E[m"

}

prompt_ok() {

echo -e "\E[32m[OK]\E[m"

}

status() {

if [ $1 -eq 0 ]; then

prompt_ok

else prompt_err

exit -1

fi

}

a.py

status

b.py

您可以使用上面的校验码。

如果“a.py”仅完成,那么它将处理“b.py”,否则它将以“错误”退出。

于 2012-12-03T22:55:04.890 回答