bash嵌套while:外部循环仅执行一次

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 出现这种情况的原因是什么?如何解决

以下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

出现这种情况的原因是什么?如何解决?请注意,我更喜欢离开
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
write
echo“IX=$IX”
在第一次
do
之后,您将看到它完美地循环!也就是说,它从0循环到3。为您想做的事情提供更多的上下文信息,这样我们就可以提供帮助。为什么您在开始时使用
while
循环而不是
for
<代码>用于((ix=0;ix@CharlesDuffy
while
来自一个skcript,我编辑它以满足我的需要。我只是没有包含变量reset,因此出现了错误。当然,
for
可以正常工作-但是我被大量的条件语句替代方案弄糊涂了,我不想深入研究它。write
echo“IX=$IX”
在第一次
之后执行
操作,您将看到它完美地循环!也就是说,它从0循环到3。请提供更多有关您要执行的操作的上下文,以便我们提供帮助。为什么您要在
时使用
而不是从
开始使用
((ix=0;ix@CharlesDuffy
while
来自一个skcript,我编辑它以满足我的需要。我只是没有包含变量reset,因此出现了错误。当然,
for
工作正常-但是我对条件语句的大量替代方案感到困惑,所以我不想深入研究。