2012-09-28 127 views
2

下面的测试脚本:

#!/bin/bash 
f() { :; } 

while :; do 
    coproc f par1 
    wait $COPROC_PID 
done 

充斥控制台:

./debug.sh: line 7: warning: execute_coproc: coproc [8740:COPROC] still exists 
./debug.sh: line 7: warning: execute_coproc: coproc [8741:COPROC] still exists 

也就是说,wait不等待协进程终止。
Bash版本是4.2.0(5) - 发布。 4.1.5(1) - 释放时不会发生这种情况。

你认为这是一个错误?

+1

恩,你在哪里设置COPROC_PID变量? – atzz

+0

'COPROC_PID'应该自动设置为'coproc'调用。 – davide

+1

我想,这是一个学习。我不知道这个功能。 – atzz

回答

0

这不是一个错误。您将coproc命名为“f”,因此它将在$ f_PID下。