无限循环麻烦bash

时间:2012-11-21 04:15:00

标签: bash

所以,基本上下面的代码给出了无限循环。但是,如果我将i + 2和f + 2改为i ++和f ++,它们就不会给出无限循环。有人能解释一下为什么会这样吗?感谢

#!/bin/bash
for ((i=0; i<5; i+2))
do
for ((f=0; f<5; f+2))
do
echo "$i $f"
done
done

3 个答案:

答案 0 :(得分:2)

你需要做+=,而不是+(在你的内循环中,i + = 2应该是f + = 2):

for ((i=0; i<5; i+=2))
do
    for ((f=0; f<5; f+=2))
    do
        echo "$i $f"
    done
done

答案 1 :(得分:0)

i+2不会更改i的值。它只是将i的当前值加2并返回结果。 i++通过递增来更改i的值。试试这个:

for ((i=0; i<5; i=i+2))

请注意,i=i+2也可以简写为i+=2。含义相同:将2添加到i的当前值,并将结果分配给i

答案 2 :(得分:-1)

+=语法是简短形式,因此您也可以将i+=2表示为i=i+2

for ((i=0; i<5; i+=2))
do
    for ((f=0; f<5; f+=2))
    do
        echo "$i $f"
    done
done