2012-09-28 128 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下。