我有2个python脚本a.py和b.py. 我想编写一个bash脚本,它将加载a.py而不是运行b.py,直到a.py完成它为止。 简单地说
#!/usr/bin/env bash
python a.py
python b.py
但这很天真,检查a.py是否已完成......我该怎么做?
答案 0 :(得分:28)
这默认情况下已经一个接一个地运行。
要检查python a.py
是否已成功完成作为运行python b.py
的必要条件,您可以执行以下操作:
#!/usr/bin/env bash
python a.py && python b.py
相反,尝试运行python a.py
,如果python a.py
没有成功终止,则只运行'python b.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
答案 1 :(得分:1)
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',否则它将以'错误'退出。