Скриптни јазици (дел 1)

Користејќи избрани примери, ова предавање покажува колку се обемни можностите на школските програми под Linux. Особено, овој прв дел детално ги опфаќа редовните изрази и дава преглед на многу мали алатки што можат да направат толку многу работа за вас.

јазици

Преглед

Следниот преглед ги прикажува сите важни мета-карактери кои можат да се користат во редовни изрази.

. Се залага за кој било карактер. * Застанува за кој било број на настани на ликот веднаш пред него. [. ] Се залага за еден од знаците затворени во загради. \ < n, m \>Се залага за повторена појава на еден лик непосредно пред него. ^ Претпоставува дека е исполнет следниот логички услов на почетокот на редот. $ Претпоставува дека е исполнет следниот логички услов на крајот од линијата. \ Посебното значење на следниот знак е откажано. \ (\) Ја пренесува моделот затворен помеѓу \ (и \) во посебен тампон. Може да се зачуваат до девет обрасци во една линија на овој начин. \ n Се залага за n-та шема што претходно беше зачувана со \ (и \).

Ефектот на индивидуалните мета-карактери треба малку да се разјасни со следниве едноставни примери.

Аритметика

Баш овозможува аритметички пресметки. Изразот во $ [. ] се оценува според вообичаените правила. Покрај основните аритметички операции на цел број, поддржани се цела низа битни операции и логички операции.

Следната скрипта за школки очекува број како параметар. Се смета од 1 до овој број, при што секоја секунда се издава број.

Излез на програми

Излезите на програмите лесно може да се користат во скрипта за школки. Тоа помеѓу `. `Затворената команда се извршува во оваа точка, а излезот од командата може да се користи во скриптата.

Следниот пример чита во серија Postscript-датотеки колку страници содржат и ги додава сите страници.

Пренасочување на датотеката

Баш нуди различни опции за пренасочување на излезот на програмите. Треба да се презентираат две особено интересни можности.

1. Спојување на stdout и stderr

Многу програми го запишуваат својот излез на stdout и stderr. Ако и двата потоци треба да бидат насочени во една датотека, постапете на следниов начин:

Изразот значи дека излезот од stderr е пренасочен кон stdout, што пак е излез во датотеката file_out.

2-ри број на ул

Понекогаш постои желба да се напише излез на stderr од скрипта со цел да се оддели излезот на скриптата за школка. Со ехо и пренасочување на датотеката ова е можно како што следува:

Излезите се појавуваат на stderr .

Еве документи

Со командата ехо и пренасочување на датотеката е можно да се создаде нова датотека од скрипта за школка:

Ако неколку датотеки треба постојано да се запишуваат во датотеката, следното решение може да се користи наместо неколку ехо-линии:

Сепаратор на влез

Следниот проблем: Во скриптата за школки, треба да се чита текстуална датотека поле по поле, полињата да се одделуваат со јазичиња. Обично испорачајте ги следниве редови

датотеката од збор до збор.

За да оддели линија во одделни зборови, Баш ја користи внатрешната променлива IFS, која ги содржи сите можни сепаратори. IFS = е зададено тука стандардно.

Проблемот поставен погоре сега е решен со следниве редови:

Зборувајќи часовник

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

Најлесен начин да се повика часовникот е преку crontab. Следните звучни датотеки исто така се потребни за да го користите часовникот.

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