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




НазваниеСправочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев это написание сценариев
страница1/46
Дата конвертации18.12.2012
Размер0.74 Mb.
ТипСправочник
  1   2   3   4   5   6   7   8   9   ...   46
Advanced Bash-Scripting Guide
Искусство программирования на языке сценариев командной оболочки Автор: Mendel Cooper


Перевод: Андрей Киселев


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

Посвящается Аните -- источнику очарования
Содержание
Часть 1. Введение
1. Зачем необходимо знание языка Shell?
2. Для начала о Sha-Bang
2.1. Запуск сценария
2.2. Упражнения
Часть 2. Основы
3. Служебные символы
4. Переменные и параметры. Введение.
4.1. Подстановка переменных
4.2. Присваивание значений переменным
4.3. Переменные Bash не имеют типа
4.4. Специальные типы переменных
5. Кавычки
6. Завершение и код завершения
7. Проверка условий
7.1. Конструкции проверки условий
7.2. Операции проверки файлов
7.3. Операции сравнения
7.4. Вложенные условные операторы if/then
7.5. Проверка степени усвоения материала
8. Операции и смежные темы
8.1. Операторы
8.2. Числовые константы
Часть 3. Углубленный материал
9. К вопросу о переменных
9.1. Внутренние переменные
9.2. Работа со строками
9.3. Подстановка параметров
9.4. Объявление переменных: declare и typeset
9.5. Косвенные ссылки на переменные
9.6. $RANDOM: генерация псевдослучайных целых чисел
9.7. Двойные круглые скобки
10. Циклы и ветвления
10.1. Циклы
10.2. Вложенные циклы
10.3. Управление ходом выполнения цикла
10.4. Операторы выбора
11. Внутренние команды
11.1. Команды управления заданиями
12. Внешние команды, программы и утилиты
12.1. Базовые команды
12.2. Более сложные команды
12.3. Команды для работы с датой и временем
12.4. Команды обработки текста
12.5. Команды для работы с файлами и архивами
12.6. Команды для работы с сетью
12.7. Команды управления терминалом
12.8. Команды выполнения математических операций
12.9. Прочие команды
13. Команды системного администрирования
14. Подстановка команд
15. Арифметические подстановки
16. Перенаправление ввода/вывода
16.1. С помощью команды exec
16.2. Перенаправление для блоков кода
16.3. Область применения
17. Встроенные документы
Часть 4. Материал повышенной сложности
18. Регулярные выражения
18.1. Краткое введение в регулярные выражения
18.2. Globbing -- Подстановка имен файлов
19. Подоболочки, или Subshells
20. Ограниченный режим командной оболочки
21. Подстановка процессов
22. Функции
22.1. Сложные функции и сложности с функциями
22.2. Локальные переменные
23. Псевдонимы
24. Списки команд
25. Массивы
26. Файлы
27. /dev и /proc
27.1. /dev
27.2. /proc
28. /dev/zero и /dev/null
29. Отладка сценариев
30. Необязательные параметры (ключи)
31. Широко распространенные ошибки
32. Стиль программирования
32.1. Неофициальные рекомендации по оформлению сценариев
33. Разное
33.1. Интерактивный и неинтерактивный режим работы
33.2. Сценарии-обертки
33.3. Операции сравнения: Альтернативные решения
33.4. Рекурсия
33.5. "Цветные" сценарии
33.6. Оптимизация
33.7. Разные советы
33.8. Проблемы безопасности
33.9. Проблемы переносимости
33.10. Сценарии командной оболочки под Windows
34. Bash, версия 2
35. Замечания и дополнения
35.1. От автора
35.2. Об авторе
35.3. Инструменты, использовавшиеся при создании книги
35.3.1. Аппаратура
35.3.2. Программное обеспечение
35.4. Благодарности
Литература
A. Дополнительные примеры сценариев
B. Маленький учебник по Sed и Awk
B.1. Sed
B.2. Awk
C. Коды завершения, имеющие предопределенный смысл
D. Подробное введение в операции ввода-вывода и перенаправление ввода-вывода
E. Локализация
F. История команд
G. Пример файла .bashrc
H. Преобразование пакетных (*.bat) файлов DOS в сценарии командной оболочки
I. Упражнения
I.1. Анализ сценариев
I.2. Создание сценариев
J. Авторские права
Перечень таблиц
11-1. Идентификация заданий
30-1. Ключи Bash
33-1. Числовые значения цвета в escape-последовательностях
B-1. Основные операции sed
B-2. Примеры операций в sed
C-1. "Зарезервированные" коды завершения
H-1. Ключевые слова/переменные/операторы пакетных файлов DOS и их аналоги командной оболочки
H-2. Команды DOS и их эквиваленты в UNIX Перечень приложений
2-1. cleanup: Сценарий очистки лог-файлов в /var/log
2-2. cleanup: Расширенная версия предыдущего сценария.
3-1. Вложенные блоки и перенаправление ввода-вывода
3-2. Сохранение результата исполнения вложенного блока в файл
3-3. Запуск цикла в фоновом режиме
3-4. Резервное архивирование всех файлов, которые были изменены в течение последних суток
4-1. Присваивание значений переменным и подстановка значений переменных
4-2. Простое присваивание
4-3. Присваивание значений переменным простое и замаскированное
4-4. Целое число или строка?
4-5. Позиционные параметры
4-6. wh, whois выяснение имени домена
4-7. Использование команды shift
5-1. Вывод "причудливых" переменных
5-2. Экранированные символы
6-1. завершение / код завершения
6-2. Использование символа ! для логической инверсии кода возврата
7-1. Что есть "истина"?
7-2. Эквиваленты команды test -- /usr/bin/test, [ ], и /usr/bin/[
7-3. Арифметические выражения внутри (( ))
7-4. Проверка "битых" ссылок
7-5. Операции сравнения
7-6. Проверка -- является ли строка пустой
7-7. zmost
8-1. Наибольший общий делитель
8-2. Арифметические операции
8-3. Построение сложных условий, использующих && и ||
8-4. Различные представления числовых констант
9-1. $IFS и пробельные символы
9-2. Ограничения времени ожидания ввода
9-3. Еще один пример ограничения времени ожидания ввода от пользователя
9-4. Ограничение времени ожидания команды read
9-5. Я -- root?
9-6. arglist: Вывод списка аргументов с помощью переменных $* и $@
9-7. Противоречия в переменных $* и $@
9-8. Содержимое $* и $@, когда переменная $IFS -- пуста
9-9. Переменная "подчеркивание"
9-10. Вставка пустых строк между параграфами в текстовом файле
9-11. Преобразование графических файлов из одного формата в другой, с изменением имени файла
9-12. Альтернативный способ извлечения подстрок
9-13. Подстановка параметров и сообщения об ошибках
9-14. Подстановка параметров и сообщение о "порядке использования"
9-15. Длина переменной
9-16. Поиск по шаблону в подстановке параметров
9-17. Изменение расширений в именах файлов:
9-18. Поиск по шаблону при анализе произвольных строк
9-19. Поиск префиксов и суффиксов с заменой по шаблону
9-20. Объявление переменных с помощью инструкции declare
9-21. Косвенные ссылки
9-22. Передача косвенных ссылок в awk
9-23. Генерация случайных чисел
9-24. Выбор случайной карты из колоды
9-25. Имитация бросания кубика с помощью RANDOM
9-26. Переустановка RANDOM
9-27. Получение псевдослучайных чисел с помощью awk
9-28. Работа с переменными в стиле языка C
10-1. Простой цикл for
10-2. Цикл for с двумя параметрами в каждом из элементов списка
10-3. Fileinfo: обработка списка файлов, находящегося в переменной
10-4. Обработка списка файлов в цикле for
10-5. Цикл for без списка аргументов
10-6. Создание списка аргументов в цикле for с помощью операции подстановки команд
10-7. grep для бинарных файлов
10-8. Список всех пользователей системы
10-9. Проверка авторства всех бинарных файлов в текущем каталоге 10-10. Список символических ссылок в каталоге 10-11. Список символических ссылок в каталоге, сохраняемый в файле 10-12. C-подобный синтаксис оператора цикла for 10-13. Работа с командой efax в пакетном режиме 10-14. Простой цикл while
10-15. Другой пример цикла while 10-16. Цикл while с несколькими условиями 10-17. C-подобный синтаксис оформления цикла while 10-18. Цикл until
10-19. Вложенный цикл
10-20. Команды break и continue в цикле 10-21. Прерывание многоуровневых циклов 10-22. Передача управление в начало внешнего цикла 10-23. Живой пример использования "continue N" 10-24. Использование case
10-25. Создание меню с помощью case 10-26. Оператор case допускает использовать подстановку команд вместо анализируемой переменной 10-27. Простой пример сравнения строк 10-28. Проверка ввода
10-29. Создание меню с помощью select 10-30. Создание меню с помощью select в функции
11-1. printf в действии
11-2. Ввод значений переменных с помощью read
11-3. Пример использования команды read без указания переменной для ввода
11-4. Ввод многострочного текста с помощью read
11-5. Обнаружение нажатия на курсорные клавиши
11-6. Чтение командой read из файла через перенаправление
11-7. Смена текущего каталога
11-8. Команда let, арифметические операции.
11-9. Демонстрация команды eval 11-10. Принудительное завершение сеанса 11-11. Шифрование по алгоритму "rot13" 11-12. Замена имени переменной на ее значение, в исходном тексте программы на языке Perl, с помощью eval 11-13. Установка значений аргументов с помощью команды set 11-14. Изменение значений позиционных параметров (аргументов) 11-15. "Сброс" переменной
11-16. Передача переменных во вложенный сценарий awk, с помощью export 11-17. Прием опций/аргументов, передаваемых сценарию, с помощью getopts 11-18. "Подключение" внешнего файла 11-19. Пример (бесполезный) сценария, который подключает себя самого.
11-20. Команда exec
11-21. Сценарий, который запускает себя самого 11-22. Ожидание завершения процесса перед тем как продолжить работу 11-23. Сценарий, завершающий себя сам с помощью команды kill
12-1. Создание оглавления диска для записи CDR, с помощью команды ls
12-2. Badname, удаление файлов в текущем каталоге, имена которых содержат недопустимые символы и пробелы.
12-3. Удаление файла по его номеру inode
12-4. Использование команды xargs для мониторинга системного журнала
12-5. copydir, копирование файлов из текущего каталога в другое место, с помощью xargs
12-6. Пример работы с expr
12-7. Команда date
12-8. Частота встречаемости отдельных слов
12-9. Какие из файлов являются сценариями?
12-10. Генератор 10-значных случайных чисел 12-11. Мониторинг системного журнала с помощью tail 12-12. Сценарий-эмулятор "grep" 12-13. Поиск слов в словаре
12-14. toupper: Преобразование символов в верхний регистр.
12-15. lowercase: Изменение имен всех файлов в текущем каталоге в нижний регистр.
12-16. du: Преобразование текстового файла из формата DOS в формат UNIX.
12-17. rot13: Сверхслабое шифрование по алгоритму rot13.
12-18. Более "сложный" шифр
12-19. Отформатированный список файлов.
12-20. Пример форматирования списка файлов в каталоге 12-21. nl: Самонумерующийся сценарий.
12-22. Пример перемещения дерева каталогов с помощью cpio 12-23. Распаковка архива rpm
12-24. Удаление комментариев из файла с текстом программы на языке C 12-25. Исследование каталога /usr/X11R6/bin 12-26. "Расширенная" команда strings 12-27. Пример сравнения двух файлов с помощью cmp.
12-28. Утилиты basename и dirname 12-29. Проверка целостности файла 12-30. Декодирование файлов
12-31. Сценарий, отправляющий себя самого по электронной почте 12-32. Ежемесячные выплаты по займу 12-33. Перевод чисел из одной системы счисления в другую 12-34. Пример взаимодействия bc со "встроенным документом" 12-35. Вычисление числа "пи"
12-36. Преобразование чисел из десятичной в шестнадцатиричную систему счисления 12-37. Разложение числа на простые множители 12-38. Расчет гипотенузы прямоугольного треугольника 12-39. Использование seq для генерации списка аргументов цикла for 12-40. Использование getopt для разбора аргументов командной строки 12-41. Захват нажатых клавиш
12-42. Надежное удаление файла
12-43. Генератор имен файлов
12-44. Преобразование метров в мили 12-45. Пример работы с m4
13-1. Установка символа "забоя"
13-2. невидимый пароль: Отключение эхо-вывода на терминал
13-3.
13-4. Использование команды pidof при остановке процесса
13-5. Проверка образа CD
13-6. Создание файловой системы в обычном файле
13-7. Добавление нового жесткого диска
13-8. Сценарий killall, из каталога /etc/rc.d/init.d
14-1. Глупая выходка
14-2. Запись результатов выполнения цикла в переменную
16-1. Перенаправление stdin с помощью exec
16-2. Перенаправление stdout с помощью exec
16-3. Одновременное перенаправление устройств, stdin и stdout, с помощью команды exec
16-4. Перенаправление в цикл while
16-5. Альтернативная форма перенаправления в цикле while
16-6. Перенаправление в цикл until
16-7. Перенаправление в цикл for
16-8. Перенаправление устройств (stdin и stdout) в цикле for
16-9. Перенаправление в конструкции if/then 16-10. Файл с именами "names.data", для примеров выше 16-11. Регистрация событий
17-1. dummyfile: Создание 2-х строчного файла-заготовки
17-2. broadcast: Передача сообщения всем, работающим в системе, пользователям
17-3. Вывод многострочных сообщений с помощью cat
17-4. Вывод многострочных сообщений с подавлением символов табуляции
17-5. Встроенные документы и подстановка параметров
17-6. Отключение подстановки параметров
17-7. Передача пары файлов во входящий каталог на "Sunsite"
17-8. Встроенные документы и функции
17-9. "Анонимный" Встроенный Документ 17-10. Блочный комментарий
17-11. Встроенная справка к сценарию
19-1. Область видимости переменных
19-2. Личные настройки пользователей
19-3. Запуск нескольких процессов в подоболочках
20-1. Запуск сценария в ограниченном режиме
22-1. Простая функция
22-2. Функция с аргументами
22-3. Наибольшее из двух чисел
22-4. Преобразование чисел в римскую форму записи
22-5. Проверка возможности возврата функциями больших значений
22-6. Сравнение двух больших целых чисел
22-7. Настоящее имя пользователя
22-8. Область видимости локальных переменных
22-9. Использование локальных переменных при рекурсии
23-1. Псевдонимы в сценарии
23-2. unalias: Объявление и удаление псевдонимов
24-1. Проверка аргументов командной строки с помощью "И-списка"
24-2. Еще один пример проверки аргументов с помощью "И-списков"
24-3. Комбинирование "ИЛИ-списков" и "И-списков"
25-1. Простой массив
25-2. Форматирование стихотворения
25-3. Некоторые специфичные особенности массивов
25-4. Пустые массивы и пустые элементы
25-5. Копирование и конкатенация массивов
25-6. Старая, добрая: "Пузырьковая" сортировка
25-7. Вложенные массивы и косвенные ссылки
25-8. Пример реализации алгоритма Решето Эратосфена
25-9. Эмуляция структуры "СТЕК" ("первый вошел -- последний вышел") 25-10. Исследование математических последовательностей 25-11. Эмуляция массива с двумя измерениями
27-1. Поиск файла программы по идентификатору процесса
27-2. Проверка состояния соединения
28-1. Удаление cookie-файлов
28-2. Создание файла подкачки (swapfile), с помощью /dev/zero
28-3. Создание электронного диска
29-1. Сценарий, содержащий ошибку
29-2. Пропущено ключевое слово
29-3. test24
29-4. Проверка условия с помощью функции "assert"
29-5. Ловушка на выходе
29-6. Удаление временного файла при нажатии на Control-C
29-7. Трассировка переменной
31-1. Западня в подоболочке
31-2. Передача вывода от команды echo команде read, по конвейеру
33-1. сценарий-обертка
33-2. Более сложный пример сценария-обертки
33-3. Сценарий-обертка вокруг сценария awk
33-4. Сценарий на языке Perl, встроенный в Bash-скрипт
33-5. Комбинирование сценария Bash и Perl в одном файле
33-6. Сценарий (бесполезный), который вызывает себя сам
33-7. Сценарий имеющий практическую ценность), который вызывает себя сам
33-8. "Цветная" адресная книга
33-9. Вывод цветного текста
33-10. Необычный способ передачи возвращаемого значения 33-11. Необычный способ получения нескольких возвращаемых значений 33-12. Передача массива в функцию и возврат массива из функции 33-13. Игры с анаграммами
34-1. Расширение строк
34-2. Косвенные ссылки на переменные -- новый метод
34-3. Простая база данных, с применением косвенных ссылок
34-4. Массивы и другие хитрости для раздачи колоды карт в четыре руки
A-1. manview: Просмотр страниц руководств man
A-2. mailformat: Форматирование электронных писем
A-3. rn: Очень простая утилита для переименования файлов
A-4. blank-rename: переименование файлов, чьи имена содержат пробелы
A-5. encryptedpw: Передача файла на ftp-сервер, с использованием пароля
A-6. copy-cd: Копирование компакт-дисков с данными
A-7. Последовательности Коллаца (Collatz)
A-8. days-between: Подсчет числа дней между двумя датами
A-9. Создание "словаря"
A-10. Расчет индекса "созвучности"
A-11. "Игра "Жизнь""
A-12. Файл с первым поколением для игры "Жизнь"
A-13. behead: Удаление заголовков из электронных писем и новостей
A-14. ftpget: Скачивание файлов по ftp
A-15. Указание на авторские права
A-16. password: Генератор случайного 8-ми символьного пароля
A-17. fifo: Создание резервных копий с помощью именованных каналов
A-18. Генерация простых чисел, с использованием оператора деления по модулю (остаток от деления)
A-19. tree: Вывод дерева каталогов
A-20. Функции для работы со строками
A-21. Directory information
A-22. Объектно ориентированная база данных
G-1. Пример файла .bashrc
H-1. VIEWDATA.BAT: пакетный файл DOS
H-2. viewdata.sh: Результат преобразования VIEWDATA.BAT в сценарий командной оболочки Часть 1. Введение

Shell -- это командная оболочка. Но это не просто промежуточное звено между пользователем и операционой системой, это еще и мощный язык программирования. Программы на языке shell называют сценариями, или скриптами. Фактически, из скриптов доступен полный набор команд, утилит и программ UNIX. Если этого недостаточно, то к вашим услугам внутренние команды shell -- условные операторы, операторы циклов и пр., которые увеличивают мощь и гибкость сценариев. Shell-скрипты исключительно хороши при программировании задач администрирования системы и др., которые не требуют для своего создания полновесных языков программирования.
Содержание
1. Зачем необходимо знание языка Shell?
2. Для начала о Sha-Bang
2.1. Запуск сценария
2.2. Упражнения
Глава 1. Зачем необходимо знание языка Shell?
Знание языка командной оболочки является залогом успешного решения задач администрирования системы. Даже если вы не предполагаете заниматься написанием своих сценариев. Во время загрузки Linux выполняется целый ряд сценариев из /etc/rc.d, которые настраивают конфигурацию операционной системы и запускают различные сервисы, поэтому очень важно четко понимать эти скрипты и иметь достаточно знаний, чтобы вносить в них какие либо изменения.
Язык сценариев легок в изучении, в нем не так много специфических операторов и конструкций. [1] Синтаксис языка достаточно прост и прямолинеен, он очень напоминает команды, которые приходится вводить в командной строке. Короткие скрипты практически не нуждаются в отладке, и даже отладка больших скриптов отнимает весьма незначительное время.
Shell-скрипты очень хорошо подходят для быстрого создания прототипов сложных приложений, даже не смотря на ограниченный набор языковых конструкций и определенную "медлительность". Такая метода позволяет детально проработать структуру будущего приложения, обнаружить возможные "ловушки" и лишь затем приступить к кодированию на C, C++, Java, или Perl.
Скрипты возвращают нас к классической философии UNIX -- "разделяй и влавствуй" т.е. разделение сложного проекта на ряд простых подзадач. Многие считают такой подход наилучшим или, по меньшей мере, наиболее эстетичным способом решения возникающих проблем, нежели использование нового поколения языков -- "все-в-одном", таких как Perl.
Для каких задач неприменимы скрипты
для ресурсоемких задач, особенно когда важна скорость исполнения (поиск, сортировка и т.п.)
для задач, связанных с выполнением математических вычислений, особенно это касается вычислений с плавающей запятой, вычислений с повышенной точностью, комплексных чисел (для таких задач лучше использовать C++ или FORTRAN)
для кросс-платформенного программирования (для этого лучше подходит язык C)
для сложных приложений, когда структурирование является жизненной необходимостью (контроль за типами переменных, прототипами функций и т.п.)
для целевых задач, от которых может зависеть успех предприятия.
когда во главу угла поставлена безопасность системы, когда необходимо обеспечить целостность системы и защитить ее от вторжения, взлома и вандализма.
для проектов, содержащих компоненты, очень тесно взаимодействующие между собой.
для задач, выполняющих огромный объем работ с файлами
для задач, работающих с многомерными массивами
когда необходимо работать со структурами данных, такими как связанные списки или деревья
когда необходимо предоставить графический интерфейс с пользователем (GUI)
когда необходим прямой доступ к аппаратуре компьютера
когда необходимо выполнять обмен через порты ввода-вывода или сокеты
когда необходимо использовать внешние библиотеки
для проприетарных, "закрытых" программ (скрипты представляют из себя исходные тексты программ, доступные для всеобщего обозрения)
Если выполняется хотя бы одно из вышеперечисленных условий, то вам лучше обратиться к более мощным скриптовым языкам программирования, например Perl, Tcl, Python, Ruby или к высокоуровневым компилирующим языкам -- C, C++ или Java. Но даже в этом случае, создание прототипа приложения на языке shell может существенно облегчить разработку.
Название BASH -- это аббревиатура от "Bourne-Again Shell" и игра слов от, ставшего уже классикой, "Bourne Shell" Стефена Бурна (Stephen Bourne). В последние годы BASH достиг такой популярности, что стал стандартной командной оболочкой de facto для многих разновидностей UNIX. Большинство принципов программирования на BASH одинаково хорошо применимы и в других командных оболочках, таких как Korn Shell (ksh), от которой Bash позаимствовал некоторые особенности, [2] и C Shell и его производных. (Примечательно, что C Shell не рекомендуется к использованию из-за отдельных проблем, отмеченных Томом Кристиансеном (Tom Christiansen) в октябре 1993 года на Usenet post
Далее, в тексте документа вы найдете большое количество примеров скриптов, иллюстрирующих возможности shell. Все примеры -- работающие. Они были протестированы, причем некоторые из них могут пригодиться в повседневной работе. Уважаемый читатель можеть "поиграть" с рабочим кодом скриптов, сохраняя их в файлы, с именами scriptname.sh. [3] Не забудьте выдать этим файлам право на исполнение (chmod u+rx scriptname), после чего сценарии можно будет запустить на исполнение и проверить результат их работы. Вам следует помнить, что описание некоторых примеров следует после исходного кода этого примера, поэтому, прежде чем запустить сценарий у себя -- ознакомьтесь с его описанием.
Скрипты были написаны автором книги, если не оговаривается иное.
  1   2   3   4   5   6   7   8   9   ...   46

Похожие:

Справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев это написание сценариев iconI. Основы JavaScript 25 Глава
Введение в JavaScript 27 Глава Комплект инструментальных средств для разработки JavaSсript-сценариев 39 Глава Начало процесса написания...
Справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев это написание сценариев iconКомандный язык shell Производственно-внедренческий кооператив
Описывается интерпретатор командного языка shell. Опи- саны элементы языка, оператор и структура программ на shell, а также встроенные...
Справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев это написание сценариев iconСоздание сценариев в Navigator
Перед изучением языка JavaScript вы должны познакомиться с основами другого языка html. При этом, возможно, Вы обнаружите, что много...
Справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев это написание сценариев iconАндрей Богатырев. Хрестоматия по программированию на Си в Unix
В этой книге вы найдете ряд задач, примеров, алгоритмов, советов и стилистичес- ких замечаний по использованию языка программирования...
Справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев это написание сценариев iconЗнакомство с субд mysql и sql 33 Глава Синтаксис и использование sql 113
Интерфейс api для языка написания сценариев php 511 Глава Введение в администрирование Mysql 559
Справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев это написание сценариев iconМетодическое пособие для внеклассной работы Театр на английском языке Сборник сценариев для постановок в 5-8 классах
Из роли, монологи, диалоги, стихи и отрывки способствуют запоминанию новой лексики и идиоматических выражений. И эмоциональность,...
Справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев это написание сценариев iconШаблоны чертежей 21 Глава Файлы сценариев и организация показа слайдов 53 Глава Создание типов линий и образцов штриховки 97 Глава Редактирование файла acad. Pgp 143 Глава 5
Файлы сценариев и организация показа слайдов 53 Глава Создание типов линий и образцов штриховки 97 Глава Редактирование файла acad....
Справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев это написание сценариев iconБомбы клепали в кремле?
Как удалось выяснить "МК" из источников в аналитических подразделениях секретных ведомств, наряду с общепринятой версией (взрывы...
Справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев это написание сценариев iconВ SharePoint 2010 32 Глава
Администрирование и автоматизация SharePoint с помощью сценариев PowerShell 157
Справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев это написание сценариев iconАннотация описывается интерпретатор командного языка c-shell
Основная функция интерп- ретатора создание процессов, выполняющих задание (одну и более команд) пользователя, сформулированное в...
Разместите кнопку на своём сайте:
txt.rushkolnik.ru



База данных защищена авторским правом ©txt.rushkolnik.ru 2012
обратиться к администрации
txt.rushkolnik.ru
Главная страница