БАСХ програмирање

Угњежђена петља у примерима скрипте за басх

Угњежђена петља у примерима скрипте за басх

У програмирању или скриптирању, петља је један од најосновнијих и најснажнијих концепата. Петља обавља одређене задатке док се не испуне наведени услови. Сваки програмски или скриптни језик има различите начине примене концепта.

У овом водичу погледајте угнежђену петљу у басх скриптама.

Угњежђена петља

Петља, по дефиницији, обавља одређене задатке док се не стекну услови. Шта ако задатак укључује покретање петље? Ово је концепт угнежђене петље. Петља у петљи.

Ово је основна структура петље.

вхиле (цондитион)
# нешто

Овде ће вхиле петља наставити да извршава задатке декларисане унутар блока све док је испуњен услов. У случају угнежђене вхиле петље, структура би изгледала овако.

# главна петља
вхиле (цондитион)
# угнежђена петља
вхиле (цондитион)
# нешто

У теорији, угнежђене петље могу ићи до бесконачне дубине. У многим ситуацијама угнежђене петље могу бити савршено решење.

Лооп у басх скрипти

Басх је моћан скриптни језик. У басху постоје различите структуре петље. Најпопуларнији су за, вхиле и тилл петље. Ако сте раније упознати са програмирањем Ц / Ц ++, тада ће синтакса изгледати прилично слично.

За петље

Фор петља је један од најчешћих и најсвестранијих облика излаза итд. Структура петљи у басх скриптама. Структура такође подсећа на петљу фор у Ц / Ц ++.

Структура фор петље у басху је следећа.

фор ((иницијализација; услов; прираштај)); урадите
# нешто
Готово

Структура је врло разумљива. Одељак иницијализације није обавезан. Међутим, услов и прираштај су већи приоритет.

Кренимо у акцију. Ево врло поједностављене басх скрипте која примењује фор лооп.

за ((и = 0; и < 5 ; i++)); do
одјек "здраво свете"
Готово

Такође је могуће користити листу / опсег као услов петље. Посебно је корисно ако радите са листом датотека, опсезима бројева, низовима, излазима наредби итд. Структура изгледа отприлике овако.

за ставку у ; урадите
# нешто
Готово

На пример, следећа скрипта ће исписати „здраво свет“ пет пута.

за и у 1… 5; урадите
одјек "здраво свете"
Готово

Шта ако треба да радимо са садржајем директоријума? У следећем примеру, скрипта ће исписати све датотеке у директоријуму / уср / бин.

за и ин / уср / бин / *; урадите
ецхо $ и
Готово

Сада, шта радимо да имамо угнежђену петљу фор? То је само један фор лооп унутар другог. Ево угнеждене петље фор користећи претходни пример.

за ((и = 0; и < 3 ; i++)); do
за ((ј = 0; ј < 2 ; j++)); do
одјек "здраво свете"
Готово
Готово

Резултат ће бити „здраво свету“ 6 пута. Спољна петља ће се покренути три пута, а унутрашња ће се покренути два пута.

Док петље

Петља вхиле је још једна популарна и интуитивна петља доступна у басх скриптама. Синтакса изгледа овако.

док ; урадите
# нешто
Готово

У следећем примеру, скрипта ће отиснути „здраво свет“ пет пута.

нум = 1
док је [$ нум -ле 5]; урадите
одјек "здраво свете"
нум = $ (($ нум + 1))
Готово

Како би изгледало имати угнежђену вхиле петљу? Ево једноставног примера.

нум_а = 1
нум_б = 1
док је [$ нум_а -ле 5]; урадите
док је [$ нум_б -ле 5]; урадите
одјек "здраво свете"
нум_б = $ (($ нум_б + 1))
Готово
нум_а = $ (($ нум_а + 1))
Готово

До петље

Ако имате позадину за програмирање на Ц / Ц ++, онда сте упознати са петљом рада. Нажалост, басх нема ништа слично. Међутим, све док петља не функционише на сличан начин. Синтакса такође изгледа прилично исто.

све док [ ]; урадите
# нешто
Готово

Разлика између петље вхиле и вхиле је услов испитивања. Све док је тест услов истинит, вхиле петља ће наставити да ради. Петља тилл, међутим, наставиће да се изводи само ако је услов нетачан.

Ево кратког примера вхиле петље. Исписаће таблицу множења од 2.

нум_а = 1
до [$ нум_а -гт 10]; урадите
ецхо $ (($ нум_а * 2))
нум_а = $ (($ нум_а + 1))
Готово

Прекид петље

У одређеним ситуацијама, ако су испуњени одређени услови, покретање остатка петље постаје сувишно. Прекиди петље су занимљива карактеристика која омогућава пробијање петље у датом стању. Важније је за угнежђене петље, што су веће петље, већа је потрошња ресурса и неефикасност.

Овде ће следећа петља фор престати да се извршава чим достигне стање.

за ((и = 1; и<=100;i++)); do
ецхо $ и
ако [$ и -ек 10]; онда
пауза
фи
Готово

Погледајте детаљно разбијање петље вхиле за детаљно објашњење и демонстрацију прекида петље.

Последње мисли

Угнеждена петља је једноставан и моћан концепт за разумевање и примену. Надамо се да је овај водич успео да опише и демонстрира концепт.

Заинтересовани за још басх водича за скриптовање? Погледајте следеће водиче.

  • Бесконачна петља басха
  • Унос корисника басх скрипте
  • Басх функција која враћа низ

Срећно рачунање!

ОпенТТД вс Симутранс
Стварање сопствене симулације превоза може бити забавно, опуштајуће и изузетно примамљиво. Због тога морате да испробате што више игара како бисте про...
Водич за ОпенТТД
ОпенТТД је једна од најпопуларнијих игара за пословну симулацију. У овој игри морате створити диван посао превоза. Међутим, почет ћете у почетку око 1...
СуперТукКарт за Линук
СуперТукКарт је сјајан наслов дизајниран да вам пружи Марио Карт искуство бесплатно на вашем Линук систему. Прилично је изазовно и забавно играти, диз...