Како да напишете BASH "за" јамка

Како да се користи BASH "за" јамка во школка скрипти

BASH (кој се залага за Bourne Again Shell) е јазик за скриптирање што го користат повеќето оперативни системи базирани на Linux и UNIX.

Може да извршувате BASH команди во еден терминален прозорец еден по друг или можете да додадете команди во текстуална датотека за да произведат скрипта за школка.

Најдоброто нешто за пишување на скрипти е тоа што можете да ги извршите повторно и повторно. На пример, замислете дека треба да додадете корисник во систем, да ги поставите нивните дозволи и да управуваат со нивното почетно опкружување. Можете или да ги запишете командите на парче хартија и да ги стартувате додека додавате нови корисници или можете да напишете едно скрипта и само да ги предадете параметрите во таа скрипта.

Јазици за скриптирање како BASH имаат слични програмски конструкции како и другите јазици. На пример, можете да ги користите параметрите за увоз за да добиете влез од тастатурата и да ги зачувате како променливи. Потоа можете да ја добиете скриптата за да извршите одредено дејство врз основа на вредноста на влезните параметри .

Клучен дел од кој било јазик за програмирање и скриптирање е способноста да се извршува истото парче код повторно и повторно.

Постојат повеќе начини да се повторува кодот (исто така познат како петелки). Во ова упатство, ќе ви биде покажано како да напишете "за" јамка.

A за јамка повторува одреден дел од кодот одново и одново. Тие се корисни за да може серијата команди да продолжат додека не се исполни одредена состојба, по што тие ќе запрат.

Во ова упатство, ќе ви бидат прикажани пет начини за користење на циклусот за заклучок во BASH-скриптата.

Пред да започнете

Пред да започнете со примерите на јамка за, треба да отворите терминален прозорец и да ги следите овие чекори:

  1. Внесете скрипти mkdir ( Дознајте повеќе за mkdir тука )
  2. Внесете скрипти на cd (ова го менува директориумот до скрипти )
  3. Внесете nano examplen.sh (каде што n е примерот на кој работите)
  4. Внесете ја скриптата
  5. Притиснете CTRL + O за да зачувате и CTRL + X за да излезете
  6. Стартувај bash examplen.sh (повторно, со тоа што n е пример со кој работиш)

Како да јамка преку листа

#! / bin / баш
за број во 1 2 3 4 5
направи
ехо $ број
направено
излез 0

BASH начинот на користење на "за" јамки е нешто различно од начинот на кој повеќето други програми за програмирање и скриптирање се справуваат со "за" јамки. Ајде да го скршиме сценариото ...

Во BASH "за" јамка сите, изјавите помеѓу do и done се изведуваат еднаш за секоја ставка во листата.

Во горниот пример, листата е сè што доаѓа по зборот (т.е. 1 2 3 4 5).

Секој пат кога јамката се повторува, следната вредност во листата се вметнува во променливата одредена по зборот "за" . Во погоре циклусот, променливата се нарекува број .

Изјавата за ехо се користи за прикажување на информации на екранот.

Затоа, овој пример ги зема броевите од 1 до 5 и ги излегува еден по еден на екранот:

Како да јамка помеѓу почетната и крајната точка

Проблемот со горенаведениот пример е дека ако сакате да обработите поголема листа (да речете од 1 до 500), на сите возрасти ќе треба да се внесат сите броеви.

Ова нè доведува до вториот пример кој покажува како да се определи почетна и крајна точка:

#! / bin / баш
за број во {1..10}
направи
ехо "број на број"
направено
излез 0

Правилата се во основа исти. Вредностите по зборот " во" го сочинуваат списокот за да се повторат и секоја вредност од листата се наоѓа во променливата (односно бројот), и секој пат кога јамката се повторува, се извршуваат изјавите помеѓу do и done .

Главната разлика е начинот на кој се формира листата. Курдните загради {} во основа означуваат опсег, а опсегот, во овој случај, е од 1 до 10 (двете точки го одделуваат почетокот и крајот на опсегот).

Овој пример, според тоа, поминува низ секој број помеѓу 1 и 10 и го прикажува бројот на екранот на следниов начин:

Истиот циклус можеше да биде напишан вака, со синтакса идентична со првиот пример:

за број во 1 2 3 4 5 6 7 8 9 10

Како да прескокнете броеви во опсег

Претходниот пример покажа како да се јави помеѓу почеток и крај, па сега ќе погледнеме како да прескокнете броеви во опсегот.

Замислете дека сакате да јавите помеѓу 0 и 100, но само да го прикажувате секој десетти број. Следнава скрипта покажува како да го направите токму тоа:

#! / bin / баш
за број во {0..100..10}
направи
ехо "број на број"
направено
излез 0

Правилата се во основа исти. Постои листа, променлива и збир на изјави што треба да се извршат помеѓу do и направи . Листата овој пат изгледа вака: {0..100..10}.

Првиот број е 0, а крајниот број е 100. Третиот број (10) е бројот на елементите во листата што ќе ги прескокнете.

Горенаведениот пример, според тоа, го прикажува следниов излез:

Повеќе традиционален барате јамка

На BASH начин на пишување за јамки е малку чудно кога ќе се спореди со други програмски јазици.

Меѓутоа, може да напишете за јамка во сличен стил на програмскиот јазик C, вака:

#! / bin / баш
за ((број = 1, број <100, број +))
{
ако (($ број% 5 == 0))
тогаш
ехо "$ број е делив со 5"
fi
}
излез 0

Циклусот започнува со поставување на променливиот број на 1 (број = 1 ). Јамката ќе продолжи да се повторува, додека вредноста на бројот е помала од 100 ( број <100 ). Вредноста на бројот се менува со додавање на 1 по неа по секоја итерација ( број ++ ).

Сè што е меѓу карактеристичните загради се изведува преку секоја итерација на јамката.

Бит помеѓу загради ги проверува вредностите на бројот , го дели со 5 и го споредува остатокот со 0. Ако остатокот е 0 тогаш бројот е делив со 5 и потоа се прикажува на екранот.

На пример:

Ако сакате да ја промените големината на чекорот на повторувањето, можете да го промените бројот број + + бројот = број + 2 , број = број + 5 , или број = број + 10 итн.

Ова може дополнително да се намали на број + = 2 или број + = 5 .

Практичен пример

За петелките може да направи повеќе од повторувачки листи на броеви. Всушност можете да го користите излезот на други команди како листа.

Следниот пример покажува како да конвертирате аудио датотеки од MP3 во WAV :

#! / bin / баш

Листата во овој пример е секоја датотека со .MP3 екстензија во тековната папка и променливата е датотека .

Командата mpg ја конвертира MP3 датотеката во WAV. Сепак, најверојатно ќе треба да го инсталирате ова со користење на вашиот менаџер на пакети.