我有2个python脚本a.py和b.py 我想写一个bash脚本来加载a.py并且不运行b.py,直到a.py完成事情。 简单地运行多个python的linux bash脚本
#!/usr/bin/env bash
python a.py
python b.py
但是这是天真的,一检查,看是否a.py后...我该怎么做呢?
我有2个python脚本a.py和b.py 我想写一个bash脚本来加载a.py并且不运行b.py,直到a.py完成事情。 简单地运行多个python的linux bash脚本
#!/usr/bin/env bash
python a.py
python b.py
但是这是天真的,一检查,看是否a.py后...我该怎么做呢?
这个默认情况下会一个接一个地运行。
要检查python a.py
成功完成的必要条件运行python b.py
,你可以这样做:
#!/usr/bin/env bash
python a.py && python b.py
相反,尝试运行python a.py
,只有运行“蟒蛇湾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
这可以超过两个?如果我也有c.py,'code' python a.py && python b.py && python c.py'code'或者必须另行为c.py单独执行一行?第一个'code'蟒蛇a.py &&蟒蛇b.py'code'然后'code'python b.py &&蟒蛇c.py'code' – StudentOfScience
@StudentOfScience即可=)查看更新的答案 –
使用&&它给出了一个错误./bash.sh:第47行:b.py:命令没有找到,但它运行b.py如果我有它的蟒蛇b.py罚款:( – StudentOfScience
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”,否则就会有“错误”退出。
这也适用,我试过了Thx! – StudentOfScience
最受欢迎!您也可以访问http://gettechgo.wordpress.com/2012/12/05/exit-status-shell-scripts/以查找更多信息。 –
@MansabUppal每当你链接到你自己的网站时,你必须*披露。 –
那是自然行为,同步执行。如果你想要的话(在后台运行一个并立即启动b),你应该在命令后附加&符号,例如'python a.py&'。 –