Како да напишете баш ВЕЛА-петелки

Команди, Синтакса и Примери

Можете да извршите низа на команди со запишување во скриптна датотека и потоа да ја извршите.

Датотеката за скрипта е едноставна текстуална датотека, обично со екстензија на .SH, која содржи низа инструкции кои исто така може да се извршат од командната линија ( школка ).

Додека примери на јамки

Подолу е пример за време на јамка. Кога ќе се изврши, оваа скриптна датотека ќе ги испечати броевите од 1 до 9 на екранот. Изјавата додека е дадена ви дава поголема флексибилност за одредување на состојбата на прекин отколку за-јамка .

#! / bin / bash count = 1 додека [$ count -le 9] го повторува списокот "count count" 1 ((count +))

На пример, претходната скрипта може да ја направите бесконечна јамка со отфрлање на инкрементната изјава "((count ++))":

#! / bin / bash count = 1 додека [$ count -le 9] го повторува "$ count" спиењето 1

Изјавата "спиење 1" го паузира извршувањето за 1 секунда за секоја повторување. Користете ја кратенката Ctrl + C за да го прекинете процесот.

Вие исто така може да креирате бесконечна јамка со поставување на дебелото црево како услов:

#! / bin / bash count = 1 додека: го повторувам "$ count" спиењето 1 ((count ++))

За да користите повеќе услови во време-циклусот, мора да ја користите двојната квадратна заграда:

count = 1 направено = 0 додека [[$ count -le 9] && [$ done == 0]] echo "$ count" sleep 1 ((count ++)) ако [$ count == 5]; тогаш $ направено = 1 fi направено

Во оваа скрипта, променливата "направено" се иницијализира на 0 и потоа се поставува на 1 кога бројот ќе достигне 5. Состојбата на јамка наведува дека додека јамката ќе продолжи сè додека "брои" е помала од девет и "готова" е еднаква до нула. Затоа јамките излегуваат кога бројот е 5.

"&&" значи логично "и" и "||" значи логично "или".

Алтернативна нотација за сврзниците "и" и "или" во услови е "-a" и "-o" со единечни квадратни загради. Горенаведениот услов:

[[$ count -le 9] && [$ done == 0]]

... може да се препишува како:

[$ count -le 9] -a [$ done == 0]

Читањето на текстуална датотека обично се прави со времена јамка. Во следниот пример, баш скриптот ја чита содржината линија со линија на датотека наречена "inventory.txt:"

FILE = инвентар.txt exec 6

Првата линија го назначува името на влезната датотека во променливата "FILE". Втората линија го зачувува "стандардниот влез" во дескрипторот на датотеката "6" (може да биде било која вредност помеѓу 3 и 9). Ова е направено така што "стандардниот влез" може да се врати во датотечниот дескриптор "0" на крајот на сценариото (види ја изјавата "exec 0 Во третата линија, влезната датотека е доделена на дескриптор на датотека" 0 ", кој се користи за стандарден влез. Извештајот "чита" потоа чита линија од датотеката на секоја итерација и ја доделува на променливата "line1".

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

count = 1 направено = 0 додека [$ count -le 9] го повторува списокот "count count" 1 (count + count)), ако [$ count == 5]

Изјавата за пауза го прескокнува извршувањето на програмата до крајот додека јавува и ги извршува сите изјави што следат. Во овој случај, изјавата "ехо заврши".

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

count = 1 направено = 0 додека [$ count -le 9] го спие 1 ((count ++)), ако [$ count == 5] продолжува ficho "$ count" направи echo Finished

Во овој случај, изјавата "продолжи" се извршува кога променливата "count" достигне 5. Ова значи дека следната изјава (ехо "$ count") не се извршува на оваа итерација (кога вредноста на "count" е 5).