Цикл until

Thank you for reading this post, don't forget to subscribe!

Циклы явля­ют­ся одним из фун­да­мен­таль­ных поня­тий язы­ков про­грам­ми­ро­ва­ния. Цик­лы удоб­ны, когда вы хоти­те запус­кать серию команд сно­ва и сно­ва, пока не будет выпол­не­но опре­де­лен­ное условие.

В язы­ках сце­на­ри­ев, таких как Bash, цик­лы полез­ны для авто­ма­ти­за­ции повто­ря­ю­щих­ся задач. В скрип­тах Bash есть 3 базо­вых кон­струк­ции цик­ла: for loop, while loop, и until loop..

Эта ста­тья объ­яс­ня­ет осно­вы цик­ла в Bash.

 

Цикл before исполь­зу­ет­ся для выпол­не­ния задан­но­го набо­ра команд, если дан­ное усло­вие оце­ни­ва­ет­ся как ложное.

Цикл until в Bash при­ни­ма­ет сле­ду­ю­щую форму:

 

Усло­вие оце­ни­ва­ет­ся перед выпол­не­ни­ем команд. Если усло­вие оце­ни­ва­ет­ся как лож­ное, коман­ды выпол­ня­ют­ся. В про­тив­ном слу­чае, если усло­вие оце­ни­ва­ет­ся как истин­ное, цикл будет пре­рван, и управ­ле­ние про­грам­мой будет пере­да­но сле­ду­ю­щей команде.

В при­ве­ден­ном ниже при­ме­ре на каж­дой ите­ра­ции цикл печа­та­ет теку­щее зна­че­ние пере­мен­ной counter и уве­ли­чи­ва­ет ее на единицу.

 

Цикл повто­ря­ет­ся до тех пор, пока зна­че­ние пере­мен­ной counter боль­ше четы­рех. Скрипт выдаст сле­ду­ю­щий вывод:

Пример цикла until в Вash

Сле­ду­ю­щий скрипт может быть поле­зен, если у ваше­го хоста git вре­мя про­стоя, и вме­сто того, что­бы вруч­ную вво­дить git pull несколь­ко раз, пока хост не под­клю­чит­ся, вы може­те запу­стить скрипт один раз. Он будет пытать­ся выта­щить хра­ни­ли­ще, пока он не будет успеш­но извлечен.

 

Скрипт напе­ча­та­ет «Ожи­да­ние хоста git …» и будет спать в тече­ние одной секун­ды, пока хост git не вый­дет в сеть. После извле­че­ния хра­ни­ли­ща будет напе­ча­та­но «Репо­зи­то­рий git извлечен».

Заключение

Цик­лы while и until очень похо­жи, за исклю­че­ни­ем того, что цикл while ите­ри­ру­ет до тех пор, пока выпол­ня­ет­ся усло­вие true, а цикл до повто­ря­ет­ся до тех пор, пока выпол­ня­ет­ся усло­вие false.