Езици на скриптове (част 1)

Използвайки избрани примери, тази лекция показва колко широки са възможностите на програмите за черупки под Linux. По-специално, тази първа част обхваща подробно регулярните изрази и дава преглед на многото малки инструменти, които могат да свършат толкова много работа за вас.

част

Общ преглед

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

. Стои за всеки символ. * Стои за произволен брой повторения на героя непосредствено пред него. [. ] Стои за един от символите, затворени в квадратни скоби. \ < n, m \>Отстоява повторно появяване на един знак непосредствено преди него. ^ Приема, че е изпълнено следното логическо условие в началото на реда. $ Приема, че е изпълнено следното логическо условие в края на реда. \ Специалното значение на следния знак се отменя. \ (\) Прехвърля шаблона, затворен между \ (и \), в специален буфер. По един начин могат да бъдат запазени до девет шаблона в един ред. \ n Означава n-тия шаблон, който преди това е бил запазен с \ (и \).

Ефектът на отделните метасимволи трябва да бъде изяснен донякъде със следните прости примери.

Аритметика

Bash позволява аритметични изчисления. Изразът в $ [. ] се оценява според обичайните правила. В допълнение към основните аритметични операции с цели числа се поддържат цял ​​набор от битови операции и логически операции.

Следният скрипт на обвивката очаква число като параметър. Той се брои от 1 до това число, като число се извежда всяка секунда.

Изход на програми

Изходите на програмите могат лесно да се използват в скрипт на черупката. Това между `. `В този момент се изпълнява затворена команда и изходът на командата може да се използва в скрипта.

Следващият пример чете в поредица от Postscript файлове колко страници съдържат и добавя всички страници.

Пренасочване на файл

Bash предлага разнообразни опции за пренасочване на изхода на програмите. Трябва да бъдат представени две особено интересни възможности.

1. Обединете stdout и stderr

Много програми записват изхода си в stdout и stderr. Ако и двата потока трябва да бъдат насочени в един файл, постъпете по следния начин:

Изразът означава, че изходът от stderr се пренасочва към stdout, който от своя страна се извежда към файла file_out.

2-ри брой на stderr

Понякога има желание да се напише изход на stderr от скрипт, за да се отдели изхода на скрипта на черупката. С ехо и пренасочване на файл това е възможно, както следва:

Изходите се появяват на stderr .

Тук документи

С командата echo и пренасочването на файла е възможно да се създаде нов файл от скрипт на черупката:

Ако няколко файла трябва да бъдат записани последователно във файла, следното решение може да се използва вместо няколко ехо реда:

Входящ разделител

Следният проблем: В скрипта на черупката текстовият файл трябва да се чете поле по поле, като полетата са разделени с раздели. Обикновено доставяйте следните редове

файлът дума по дума.

За да отдели ред на отделни думи, Bash използва вътрешната променлива IFS, която съдържа всички възможни разделители. IFS = е зададен тук по подразбиране.

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

Говорещ часовник

Малко по-обширен пример за програмиране на черупки е говорещият часовник. Skirpt по същество владее три различни вида часовници: говорещ часовник, църковен часовник и часовник с кукувица. При първите две времето се показва на всеки четвърт час чрез обявяване на часа с помощта на готови звукови файлове или чрез ударяване на часовника по съответния начин. Часовникът с кукувица показва броя часове на всеки пълен час.

Най-лесният начин за извикване на часовника е чрез crontab. Следните звукови файлове също са необходими за използване на часовника.

Следващият преглед представя редица повече или по-малко мощни програми, които могат да бъдат от различна полза при писане на скриптове на черупки.