Вложенные циклы c-style в bash - PullRequest
       25

Вложенные циклы c-style в bash

0 голосов
/ 16 октября 2011

Кто-нибудь может объяснить, почему следующий цикл c-style в bash-скрипте не работает должным образом?

Скрипт:

for ((i=0; i<3; i++))
do
    for ((j==0; j<3; j++))
    do
        echo "Iteration $i $j"
    done
done

Ожидаемый результат:

Iteration 0 0
Iteration 0 1
Iteration 0 2
Iteration 1 0
Iteration 1 1
Iteration 1 2
Iteration 2 0
Iteration 2 1
Iteration 2 2

Наблюдаемый вывод:

Iteration 0
Iteration 0 1
Iteration 0 2

Это не имеет смысла для меня.Я предполагаю, что внутренний и внешний цикл «мешают» кому-то (очень странно) друг другу.Не-c-стиль для циклов (с "in") работает как положено ...

спасибо m.

Ответы [ 2 ]

2 голосов
/ 16 октября 2011

да, потому что вы написали j == 0. следовательно, происходит только 1 итерация внутреннего цикла, потому что когда j ++ делает значение j равным 1, равенство j == 0 больше не выполняется.

1 голос
/ 16 октября 2011
for ((j==0; j<3; j++))

это опечатка здесь, или вы действительно проверяете j на равенство 0? Это могло бы объяснить это ...

...