我有一个问题来自https://mywiki.wooledge.org/BashFAQ/106
看看这段代码:
exec > >(tee myfile)
pspid=$!
# ... stuff ...
echo "A"
cat file
echo "B"
# end stuff
# All done. Close stdout so the proc sub will terminate, and wait for it.
exec >&-
wait $pspid
# what happens if we delete line exec >&- ?
# what if ...stuff... do not finish before >&- ?
我的第一个问题是我们为什么需要exec >&-
这里?如果我们删除它会发生什么?我猜删除exec >&-
会导致wait $pspid
无限期等待。
由于tee myfile
在后台异步运行,我预计stuff
会无序处理。所以我的第二个问题是,如果其中任何一个stuff
之前没有完成怎么办>&-
?