Advanced Bash-scripting guide. Искусство программирования на языке сценариев командной оболочки

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток . . . постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев -- это написание сценариев.

Author(s): Mendel Cooper, Андрей Киселев
Year: 2003

Language: Russian
Commentary: Перовод книги. Pdf сконвертирован из файла abs-book.sgml.
Pages: 586

Часть 1. Введение ...............................................................................................................................ix
1. Зачем необходимо знание языка Shell? ..................................................................................1
2. Для начала о Sha-Bang...............................................................................................................4
2.1. Запуск сценария.............................................................................................................7
2.2. Упражнения....................................................................................................................7
Часть 2. Основы ..................................................................................................................................10
3. Служебные символы................................................................................................................11
4. Переменные и параметры. Введение. ...................................................................................34
4.1. Подстановка переменных...........................................................................................34
4.2. Присваивание значений переменным ......................................................................37
4.3. Переменные Bash не имеют типа...............................................................................39
4.4. Специальные типы переменных ...............................................................................40
5. Кавычки .....................................................................................................................................46
6. Завершение и код завершения ...............................................................................................55
7. Проверка условий.....................................................................................................................57
7.1. Конструкции проверки условий ...............................................................................57
7.2. Операции проверки файлов.......................................................................................64
7.3. Операции сравнения ...................................................................................................68
7.4. Вложенные условные операторы if/then ..................................................................76
7.5. Проверка степени усвоения материала ...................................................................76
8. Операции и смежные темы.....................................................................................................78
8.1. Операторы.....................................................................................................................78
8.2. Числовые константы...................................................................................................86
Часть 3. Углубленный материал .................................................................................................88
9. К вопросу о переменных .........................................................................................................89
9.1. Внутренние переменные .............................................................................................89
9.2. Работа со строками ...................................................................................................110
9.3. Подстановка параметров .........................................................................................117
9.4. Объявление переменных: declare и typeset............................................................128
9.5. Косвенные ссылки на переменные .........................................................................130
9.6. $RANDOM: генерация псевдослучайных целых чисел.......................................133
9.7. Двойные круглые скобки .........................................................................................139
10. Циклы и ветвления ..............................................................................................................142
10.1. Циклы ........................................................................................................................142
10.2. Вложенные циклы ...................................................................................................154
10.3. Управление ходом выполнения цикла.................................................................155
10.4. Операторы выбора...................................................................................................159
11. Внутренние команды...........................................................................................................168
11.1. Команды управления заданиями .........................................................................193
12. Внешние команды, программы и утилиты......................................................................199
12.1. Базовые команды.....................................................................................................199
12.2. Более сложные команды ........................................................................................203
12.3. Команды для работы с датой и временем...........................................................211
12.4. Команды обработки текста....................................................................................215
12.5. Команды для работы с файлами и архивами ....................................................235
v
12.6. Команды для работы с сетью ................................................................................255
12.7. Команды управления терминалом.......................................................................261
12.8. Команды выполнения математических операций.............................................262
12.9. Прочие команды ......................................................................................................273
13. Команды системного администрирования......................................................................286
14. Подстановка команд............................................................................................................317
15. Арифметические подстановки...........................................................................................324
16. Перенаправление ввода/вывода ........................................................................................325
16.1. С помощью команды exec.......................................................................................328
16.2. Перенаправление для блоков кода.......................................................................331
16.3. Область применения ...............................................................................................335
17. Встроенные документы.......................................................................................................338
Часть 4. Материал повышенной сложности ........................................................................347
18. Регулярные выражения ......................................................................................................348
18.1. Краткое введение в регулярные выражения......................................................348
18.2. Globbing -- Подстановка имен файлов .................................................................354
19. Подоболочки, или Subshells ................................................................................................357
20. Ограниченный режим командной оболочки...................................................................361
21. Подстановка процессов .......................................................................................................363
22. Функции .................................................................................................................................366
22.1. Сложные функции и сложности с функциями..................................................368
22.2. Локальные переменные ..........................................................................................377
23. Псевдонимы...........................................................................................................................382
24. Списки команд......................................................................................................................385
25. Массивы .................................................................................................................................388
26. Файлы .....................................................................................................................................410
27. /dev и /proc ..............................................................................................................................411
27.1. /dev ............................................................................................................................411
27.2. /proc ..........................................................................................................................411
28. /dev/zero и /dev/null.................................................................................................................417
29. Отладка сценариев...............................................................................................................421
30. Необязательные параметры (ключи) ...............................................................................429
31. Широко распространенные ошибки .................................................................................433
32. Стиль программирования...................................................................................................440
32.1. Неофициальные рекомендации по оформлению сценариев............................440
33. Разное .....................................................................................................................................444
33.1. Интерактивный и неинтерактивный режим работы ........................................444
33.2. Сценарии-обертки....................................................................................................445
33.3. Операции сравнения: Альтернативные решения ..............................................449
33.4. Рекурсия....................................................................................................................450
33.5. “Цветные” сценарии ................................................................................................451
33.6. Оптимизация ............................................................................................................456
33.7. Разные советы ..........................................................................................................457
33.8. Проблемы безопасности .........................................................................................466
33.9. Проблемы переносимости ......................................................................................467
33.10. Сценарии командной оболочки под Windows ...................................................468
34. Bash, версия 2.........................................................................................................................469
vi
35. Замечания и дополнения........................................................................................................475
35.1. От автора ............................................................................................................................475
35.2. Об авторе.............................................................................................................................475
35.3. Инструменты, использовавшиеся при создании книги..............................................475
35.3.1. Аппаратура ............................................................................................................476
35.3.2. Программное обеспечение...................................................................................476
35.4. Благодарности ...................................................................................................................476
Bibliography ...........................................................................................................................................479
A. Дополнительные примеры сценариев ...............................................................................486
B. Маленький учебник по Sed и Awk..........................................................................................531
B.1. Sed ..........................................................................................................................................531
B.2. Awk.........................................................................................................................................535
C. Коды завершения, имеющие предопределенный смысл...........................................538
D. Подробное введение в операции ввода-вывода и перенаправление
ввода-вывода............................................................................................................................540
E. Локализация .................................................................................................................................543
F. История команд ...........................................................................................................................546
G. Пример файла .bashrc .............................................................................................................548
H. Преобразование пакетных (*.bat) файлов DOS в сценарии командной оболочки
561
I. Упражнения...................................................................................................................................566
I.1. Анализ сценариев.................................................................................................................566
I.2. Создание сценариев .............................................................................................................567
J. Авторские права ..........................................................................................................................576