所以我有这个代码:
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 之后使用单个 & 这里;因为然后该过程在后台运行并立即更改变量...
所以我实际上被卡住了,可以使用一些帮助......