bash嵌套while:外部循环仅执行一次
以下bash脚本中的外部循环仅执行一次,但应执行四次:bash嵌套while:外部循环仅执行一次,bash,while-loop,nested-loops,Bash,While Loop,Nested Loops,以下bash脚本中的外部循环仅执行一次,但应执行四次: #!/bin/bash NX="4" NY="6" echo "NX = $NX, NY = $NY" IX="0" IY="0" while (( IX < NX )) do while (( IY < NY )) do echo "IX = $IX, IY = $IY"; IY=$(( IY+1 )) done; IX=$(( IX+1 )) done 出现这种情况的原因是什么?如何解决
#!/bin/bash
NX="4"
NY="6"
echo "NX = $NX, NY = $NY"
IX="0"
IY="0"
while (( IX < NX ))
do
while (( IY < NY ))
do
echo "IX = $IX, IY = $IY";
IY=$(( IY+1 ))
done;
IX=$(( IX+1 ))
done
出现这种情况的原因是什么?如何解决?请注意,我更喜欢离开
NX=“4”
和NY=“6”
(带引号),因为它们实际上是从另一个脚本中获取的。在到达5
后,需要将IY
重置为0
。改为:
#!/bin/bash
NX="4"
NY="6"
echo "NX = $NX, NY = $NY"
IX="0"
IY="0"
while (( IX < NX ))
do
while (( IY < NY ))
do
echo "IX = $IX, IY = $IY";
IY=$(( IY+1 ))
done;
IY="0"
IX=$(( IX+1 ))
done
#/bin/bash
NX=“4”
NY=“6”
回声“NX=$NX,NY=$NY”
IX=“0”
IY=“0”
而((IX
在达到5
后,您需要将IY
重置为0
。改为:
#!/bin/bash
NX="4"
NY="6"
echo "NX = $NX, NY = $NY"
IX="0"
IY="0"
while (( IX < NX ))
do
while (( IY < NY ))
do
echo "IX = $IX, IY = $IY";
IY=$(( IY+1 ))
done;
IY="0"
IX=$(( IX+1 ))
done
#/bin/bash
NX=“4”
NY=“6”
回声“NX=$NX,NY=$NY”
IX=“0”
IY=“0”
而((IX
writeecho“IX=$IX”
在第一次do
之后,您将看到它完美地循环!也就是说,它从0循环到3。为您想做的事情提供更多的上下文信息,这样我们就可以提供帮助。为什么您在开始时使用while
循环而不是for
<代码>用于((ix=0;ix@CharlesDuffywhile
来自一个skcript,我编辑它以满足我的需要。我只是没有包含变量reset,因此出现了错误。当然,for
可以正常工作-但是我被大量的条件语句替代方案弄糊涂了,我不想深入研究它。writeecho“IX=$IX”
在第一次之后执行操作,您将看到它完美地循环!也就是说,它从0循环到3。请提供更多有关您要执行的操作的上下文,以便我们提供帮助。为什么您要在时使用而不是从开始使用((ix=0;ix@CharlesDuffywhile
来自一个skcript,我编辑它以满足我的需要。我只是没有包含变量reset,因此出现了错误。当然,for
工作正常-但是我对条件语句的大量替代方案感到困惑,所以我不想深入研究。