首先,我不知道如何搜索我想做的事情。
我有一个在终端(Linux)中产生输出的 exec。让我们来看一个简单的 C 程序 a.out:
#include <stdio.h>
int main (int argc, char *argv[]) {
int i=0;
float j=0;
for(i=0; i<=10000000;i++)
{
j = i*-1e-5;
printf (" %d 2.0 %f 4.0 5.0\n",i,j);
}
}
产生的输出如下:
0 2.0 -0.000000 4.0 5.0
1 2.0 -0.000010 4.0 5.0
2 2.0 -0.000020 4.0 5.0
3 2.0 -0.000030 4.0 5.0
...
根据这个输出我想:
- 启动这个执行
- “捕获”输出
- 如果第 3 列值达到 -0.5,则停止/杀死 exec
你将如何做到这一点?
例如,这个脚本 exec.sh 不会停止 exec:
#/bin/sh
PROG=./a.out
$PROG > output &
progpid=$!
(tail -fn 0 output & echo $! > tailpid ) | awk -v progpid=$progpid '{
if($3<=-0.5){
system("kill "progpid)
# system( ##update other file )
system("kill $(<tailpid)")
}
}'
有任何想法吗 ?
提前致谢