Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何使用shell脚本运行依赖于正在运行的进程的第二个进程?_Linux_Shell_Terminal - Fatal编程技术网

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

Linux 如何使用shell脚本运行依赖于正在运行的进程的第二个进程?,linux,shell,terminal,Linux,Shell,Terminal,我想使用shell脚本对两个进程进行自动化。 我有两个程序,a是一个工作负载,b是一个CPU分析器,用于在a运行时评测CPU 以前,我通过打开两个终端手动运行这些程序。首先,在第一个终端中运行a,然后在另一个终端中,我得到a的进程ID,最后运行/b[pid-of-a]。这导致我错过了进程a最初几秒钟的评测 我试过: /a& pid=$!& /b pid 但是它没有按照我想要的方式工作。它首先运行b并返回一个错误,因为a的PID不存在。我也不能使用&&,因为它会先等a完成,然后b开始,这不是我想

我想使用shell脚本对两个进程进行自动化。 我有两个程序,a是一个工作负载,b是一个CPU分析器,用于在a运行时评测CPU

以前,我通过打开两个终端手动运行这些程序。首先,在第一个终端中运行a,然后在另一个终端中,我得到a的进程ID,最后运行
/b[pid-of-a]
。这导致我错过了进程a最初几秒钟的评测

我试过:

/a&
pid=$!&
/b pid
但是它没有按照我想要的方式工作。它首先运行b并返回一个错误,因为a的PID不存在。我也不能使用
&&
,因为它会先等a完成,然后b开始,这不是我想要的方式


关于这种依赖性,我应该对代码做什么修改

不要在后台设置
pid
,要展开时请记住放置
$

./a & 
pid=$!
./b "$pid"
或者只是

./a &  
./b $!

编写一个bash脚本,该脚本将使用pgrep检查ProcessA并获取其pid

#/垃圾箱/垃圾箱
虽然是真的
做
pid=`pgrep-f processA`
如果[!-z$pid]
然后
/流程B$pid
打破
fi
完成