20.2.2. Принцип работы команды getopts

20.2.3. Указание значений опций с помощью команды getopts

20.2.4. Доступ к значениям

20.2.5. Использование команды getopts для преобразования файлов

20.3. Заключение

ГЛАВА 21

21.1. Применение команды tput

21.1.1. Строчный поток вывода данных

21.1.2. Числовой вывод

21.1.3. Поток вывода булевых данных

21.2. Работа с командой tput

21.2.1. Присвоение имен командам tput

21.2.2. Применение булевого потока вывода

21.2.3. Использование команды tput в сценариях

21.2.4. Генерирование escape–последовательностей

21.2.5. Изменение положения курсора

21.2.6. Центрирование отображаемого текста

21.2.7. Определение атрибутов терминала

21.2.8. Применение функциональных клавиш при работе со сценариями

21.2.9. Применение различных цветов

21.2.10. Генерирование цветов

21.2.11. Улучшение внешнего вида меню

21.3. Заключение

ГЛАВА 22

22.1. Добавление записей

22.2. Удаление записей

22.3. Обновление записей

22.4. Просмотр записей

22.5. Заключение

ГЛАВА 23

23.1. Наиболее распространенные ошибки

23.1.1. Ошибки, связанные с циклом

23.1.2. Как обычно пропускают кавычки

23.1.3. Проверка на наличие ошибки

23.1.4. Регистр символов

23.1.5. Циклы for

23.1.6. Команда echo

23.2. Команда set

23.3. Заключение

ГЛАВА 24

24.1. Полный список команд, встроенных в интерпретатор shell

24.1.1. Команда pwd

24.1.2. Команда set

24.1.3. Команда times

24.1.4. Команда type

24.1.5. Команда ulimit

24.1.6. Команда wait

24.2. Заключение

Часть 5

ГЛАВА 25

25.1 Быстрый метод формирования файла

25.2. Скоростной способ вывода документа на печать

25.3. Автоматизация меню

25.4. Автоматизация передачи файлов по протоколу ftp

25.5. Организация доступа к базам данных

ГЛАВА 26

26.1. Создание регистрационных файлов

26.1.1. Применение команды date для создания журнальных файлов

26.1.2. Создание уникальных временных файлов

26.2. Сигналы

26.2.1. Уничтожение процесса

26.2.2. Обнаружение сигнала

26.3. Команда trap

26.3.1. Перехват сигналов и выполнение действий

26.3.2. Захват сигнала и выполнение действий

26.3.3. Блокировка терминала

26.3.4. Игнорирование сигналов

26.4. Команда eval

26.4.1. Выполнение команд, находящихся в строке

26.4.2. Присвоение значения имени переменной

26.5. Команда logger

26.5.1. Использование команды logger

26.5.2. Использование команды logger в сценариях

26.6. Заключение

ГЛАВА 27

27.1. Сценарий pingall

27.2. Сценарий backup_gen

27.3. Сценарий del.lines

27.4. Сценарий access.deny

27.5. Сценарий logroll

27.6. Сценарий nfsdown

27.7. Заключение

ГЛАВА 28

28.1. Определение наличия каталогов уровня выполнения

28.2. Уточнение текущего уровня выполнения

28.3. Ускорение работы с помощью файла inittab

28.4. Переходим к уровням выполнения

28.4.1. Различные уровни выполнения

28.4.2. Формат сценария уровня выполнения

28.4.3. Инсталляция сценария уровня выполнения

28.5. Использование файла inittab для запуска приложений

28.6. Другие методы, применяемые для запуска и останова служб

28.7. Заключение

ГЛАВА 29

29.1. Определение Web–страницы

29.2. Протокол cgi

29.3. Подключение к Web–серверу

29.4. Сценарии cgi и HTM

29.4.1. Базовый сценарий cgi

29.4.2. Отображение вывода команды интерпретатора shell

29.4.3. Использование SSI

29.4.4. Счетчик количества посещений

29.4.5. Вывод на печать текущих настроек Web–среды с помощью ссылки

29.4.6. Другие общие переменные среды

29.5. Введение в методы get и post

29.5.1. Метод get

29.5.2. Метод post

29.5.3. Заполнение списка

29.5.4. Автоматическое обновление Web–страницы

29.6. Заключение

ПРИЛОЖЕНИЕ А Коды ASCII

ПРИЛОЖЕНИЕ Б

basename

cat

compress

cp

diff

dircmp

dirname

du

file

fuser

head

mkdir

more

nl

printf

pwd

rm

rmdir

script

shutdown

sleep

strings

touch

tty

uname

uncompress

wait

wc

whereis

who

notes

1

2

3

Linux и UNIX: программирование в shell. Руководство разработчика _0.jpg

Введение

Настоящая книга посвящена shell–программированию, или, точнее, программированию в интерпретаторе Bourne shell.

Программирование на языке интерпретатора shell приобретает все большую популярность по мере утверждения Linux в качестве удобной в работе и отказоустойчивой операционной системы. Трудно оценить, какое количество пользователей работают с Linux. Эта операционная система распространяется бесплатно, хотя многие компании разрабатывают ее коммерческие варианты. Кроме того, несмотря на сделанные несколько лет назад неутешительные прогнозы специалистов относительно будущего UNIX, данная ОС также не теряет популярности, и число ее приверженцев продолжает расти.

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

При написании книги во внимание принимались шесть основных положений:

   • читатель должен быстро освоить инструментальные средства интерпретатора shell, а также изучить основы программирования на языке shell;

   • книга должна служить не только руководством, но и справочником;

   • для повышения производительности системы читателю следует научиться писать shell–сценарии;

   • необходимо, чтобы shell–сценарии имели четкую и понятную структуру}

   • главы, по возможности, должны быть самодостаточными и независимыми друг от друга, что упрощает их изучение;

   • читатель должен уметь решать ряд административных задач, в частности создавать CGI–сценарии.

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

Если вы приступили к изучению shell–программирования, очевидно, у вас есть на то веские причины. Основные причины изучения shell–программирования заключаются в следующем:

   • язык программирования интерпретатора shell вполне самодостаточен, он содержит все необходимые управляющие конструкции и удобен в применении;

   • открывается возможность быстрого создания сценариев;

   • сценарии позволяют автоматизировать рутинные операции, выполняемые обычно вручную.

Интерпретатор bourne shell

Bourne shell является стандартным интерпретатором команд, который входит в состав всех систем UNIX и совместим с интерпретатором bash в Linux. В книге, посвященной shell–программированию и не привязанной к конкретной операционной системе, в качестве общего знаменателя должен рассматриваться именно Bourne shell. Учтите, что существуют и другие интерпретаторы, такие как bash, Korn shell и С shell. Если в вашей системе установлен интерпретатор bash, сценарии из этой книги будут выполняться в нем, поскольку bash совместим с Bourne shell. Синтаксис интерпретатора Korn shell близок к синтаксису рассматриваемого здесь языка.


Перейти на страницу:
Изменить размер шрифта: