Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

4.2.9. Программирование в shell

Shell является не только интерпретатором команд, но и языком программирования на уровне команд. Это означает, что вместо того, чтобы использовать shell только как взаимосвязь между вами и компьютером, вы можете программировать с его помощью для автоматического повторения последовательности инструкций. Чтобы сделать это, нужно создать исполняемый файл, содержащий список этих команд. Эти файлы называются процедурами shell. Создав такую процедуру для определенной задачи, вы можете просто запросить shell прочитать и выполнить содержание процедуры.

Подобно другими языкам программирования shell обеспечивает такие возможности как переменные, управление структурами, подпрограммы, передача параметров. С помощью этих возможностей вы можете создавать собственный инструментарий.

Например, вы можете скомбинировать три команды системы UNIX (date, who, wc) в простой процедуре shell и назвать его users. Эта процедура отражает дату, время и количество пользователей, работающих в вашей системе. С помощью редактора vi создайте файл users:

	vi users<CR>

Редактор выведет пустую страницу на вашем экране и будет ждать ввода текста. Введите три команды на одной строке:

	date; who | wc -l 

Затем запишите текст в файл и выйдите из файла, задав команду:

	:wq 
Сделайте файл users исполняемым:
	chmod ug+x users<CR>

Теперь попытайтесь запустить этот файл. На экране появится информация, подобная:

	$ users<CR>
        Sat  Mar  11   16:40:32   EST   1989
              4
        $

Команда распечатывает дату и количество пользователей (4).

4.2.10. Программирование с помощью awk

awk предлагает вам управлять задачами обработки данных и восстановления информации. В разд. 7 приводится концепция языка и структура программы awk.

Типичная программа awk состоит из выражения "шаблон-действие". awk-программа находит во вводном файле строку, соответствующую шаблону и выполняет над ней указанное действие. Процесс продолжается до тех пор, пока весь вводной файл не будет прочитан.