http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4064315&pid=23763589&page=1&extra=#pid23763589
相关链接
http://bbs.chinaunix.net/thread-1326829-1-1.html
http://bbs.chinaunix.net/thread-866347-1-1.html
- 脚本如下
- #!/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
- 解决方法
- a && wait && b
- function a
- {
- for ((i=0;i<5000;i++))
- do
- ...
- done
- wait
- echo a done
- }
- 这样执行起来就可以确保函数a 完全执行完了再执行函数b