分叉两个进程并在第一个进程完成时终止第二个进程

Use*_*er1 5 bash kill

我想创建一个bash脚本,它将启动两个进程并在第一个进程完成时终止第二个进程.这是一个例子:

#fork first process
producer&

#fork second process
consumer&

#wait for producer to finish
...

#kill the consumer
...

我有一种感觉,这可能会变得丑陋,但有一个非常简单的解决方案.请帮我填空.

ndi*_*dim 12

foo & pid_foo=$!
bar & pid_bar=$!

wait $pid_foo
kill $pid_bar
Run Code Online (Sandbox Code Playgroud)

但也许你可以运行foo | bar(如果这恰好与stdin/stdout处理一起工作).