开发者社区> 问答> 正文

如何使用Shell脚本依赖于正在运行的进程来运行第二个进程?

我想使用shell脚本对2个进程进行自动化。我有2个程序,a是工作量,b是当a运行时用于分析cpu的CPU分析器。

以前,我通过打开2个终端来手动运行这些程序。首先,运行一个在第一终端,然后在另一端,我得到的进程ID 一个,最后运行./b [pid-of-a]。这使我错过了流程a的前几秒的分析。

我试过了:

./a &
pid=$! & 
./b pid

但这并不符合我想要的方式。它运行b的第一和由于PID返回错误一个不存在。我也不能使用&&,因为它将在b开始之前先等待a完成,这不是我想要的方式。

关于这种依赖性,我应该对我的代码做哪些修改?

展开
收起
祖安文状元 2020-01-16 17:39:26 642 0
1 条回答
写回答
取消 提交回答
  • 不要pid在后台设置,记住$要扩展它时请放一个:

    ./a & 
    pid=$!
    ./b "$pid"
    
    

    要不就

    ./a &  
    ./b $!
    
    2020-01-16 17:39:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
服务上云加速大家居产业C2M进程 立即下载
Shell 脚本速查手册 立即下载
《15分钟打造你自己的小程序》 立即下载