所以我有這樣的代碼:在Ubuntu Linux操作系統的64位11.10殼上設置的BG任務完成可變
uthreads=4
x=1
cd ./wxWidgets/wxWidgets/build-win
for upxs in $(ls ./lib/*.dll)
do
while [ true ] ; do
if [ $x -lt $uthreads ] ; then
x=$((x+1))
(upx -qqq --best --color $upxs; x=$((x-1))) &
break
fi
sleep 1
done
done
x=$((x=1))
問題出在變量被修改括號。自然,這不會按預期工作,因爲變量永遠不會被髮送回父shell。所以我的問題是你如何做到這一點?無論退出狀態如何,upx命令完成後,變量都必須遞增。所以一個簡單的& &或||在這裏不起作用。在upx之後你不能在這裏使用單一的&;因爲那時的進程在後臺運行,並立即改變變量...
所以我很有效卡住,可以使用一些幫助...
你或許應該改變'Linux的標題+標籤到任何外殼您正在使用得到一些更好的答案。 – AlexWebr 2011-12-26 07:47:38