Chinaunix
标题:
如何确定执行完函数a 再执行函数b
[打印本页]
作者:
linuxforlive
时间:
2013-01-17 15:24
标题:
如何确定执行完函数a 再执行函数b
脚本如下
#!/bin/bash
function a
{
for ((i=0;i<5000;i++))
do
echo $i & 【为了执行效率 将这句放在后台运行 这里只是举例写成这样 (实际环境是 服务器众多 这一句是执行一个脚本备份数据库的(大概需要2分钟的时间)】
done
}
function b
{
echo "b"
echo "after function a"
}
a && b
然后这样执行a && b 会出现函数a中的语句实际没有执行完 就执行了函数b中的语句
因为这里的逻辑关系 就是我想确保a完全执行完了 再执行函数b中的内容
ps:请教了一些朋友 说是函数a执行完后 sleep xxx秒 然后执行函数b 这样理论上是可以的 只要给一个合适的时间 但由于我的数据库随着业务也是不断增大的
所以想问问有没有更好的方法来判断 a确定执行完了 再执行b
作者:
jils2013
时间:
2013-01-17 16:31
考虑可以把函数里的& 移到外面来,a && b &--未验证,写法不确定
作者:
bio_tt
时间:
2013-01-17 22:59
a && wait && b , 可以不?
作者:
jason680
时间:
2013-01-18 11:44
回复
1#
linuxforlive
How about this way
function a
{
for ((i=0;i<5000;i++))
do
...
done
wait
echo a done
}
作者:
linuxforlive
时间:
2013-01-18 13:56
回复
3#
bio_tt
可以
谢谢哈 也查了一些资料
http://bbs.chinaunix.net/thread-866347-1-1.html
是不是想这上面所说的?
作者:
linuxforlive
时间:
2013-01-18 13:58
回复
4#
jason680
谢谢 再给点wait的详细说明吧
http://bbs.chinaunix.net/thread-1326829-1-1.html
作者:
seesea2517
时间:
2013-01-18 14:21
我觉得 2 楼的就行嘛。
作者:
bio_tt
时间:
2013-01-18 16:40
回复
5#
linuxforlive
就是等子进程全部结束,然后才往下走
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2