大佬教程收集整理的这篇文章主要介绍了linux – 如何等待第一个命令完成?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当我一个接一个地运行这两个脚本时,有时会在第一个脚本结束之前执行第二个脚本,这会打印出错误的结果.
我正在使用source命令运行这两个脚本.还有更好的建议?
source ../../st_new.sh -basedir $STRESS_PATH -instances $INSTANCES source ../../results.sh
现在有一个特殊的命令使这个混乱:&
cmd &
表示:“启动一个新的后台进程并在其中执行cmd.启动后台进程后,立即继续执行脚本中的下一个命令.”
这意味着&不等待cmd做它的工作.我的猜测是st_new.sh包含这样的命令.如果是这种情况,那么您需要修改脚本:
cmd & BACK_PID=$!
这将新后台进程的进程ID(PID)放在变量BACK_PID中.然后,您可以等待它结束:
while kill -0 $BACK_PID ; do echo "Process is still active..." sleep 1 # You can add a timeout here if you want done
或者,如果您不想要任何特殊的处理/输出
wait $BACK_PID
请注意,某些程序在运行时会自动启动后台进程,即使您省略了& ;.检查文档,他们通常可以选择将PID写入文件,或者您可以使用选项在前台运行它们,然后使用sHell的&命令改为获取PID.
以上是大佬教程为你收集整理的linux – 如何等待第一个命令完成?全部内容,希望文章能够帮你解决linux – 如何等待第一个命令完成?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。