Данное руководство не предполагает наличие у читателя познаний в области программирования на
языке сценариев, однако, быстро восполняет этот недостаток . . . постепенно, шаг за шагом раскрывая
мудрость и красоту 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