Разница между «пока» и «до» в Bash

В чем реальная разница между while и until?

Я хотел бы знать, возможно ли сделать возрастающий цикл с помощью «до» и убывающий цикл с в то время как.

Потому что я видел, что если я делаю то

COUNTER=0
     while [ $COUNTER -lt 10 ]; do
         echo The counter is $COUNTER
         let COUNTER+=1 
     done

и это

COUNTER=20
     until [ $COUNTER -lt 10 ]; do
         echo COUNTER $COUNTER
         let COUNTER-=1
     done

, они работают хорошо.

Но если я сделаю наоборот, например:

COUNTER=20
     while [ $COUNTER -lt 10 ]; do
         echo COUNTER $COUNTER
         let COUNTER-=1
     done

сценарий не закончится.

Означает ли это, что мы не можем выполнить обратный цикл с помощью while в bash?

25
задан Kyrol 27 November 2011 в 18:09
поделиться

2 ответа

while запускает цикл , в то время как условие выполняется. until запускает цикл , пока условие не станет истинным (то есть , в то время как условие будет ложным).

См. http://www.gnu.org/software/bash/manual/bashref.html#Looping-Constructs .

38
ответ дан 28 November 2019 в 18:19
поделиться

Они противоположны:

bool b;
while(b) = until(!b)
6
ответ дан 28 November 2019 в 18:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: