
- •Список сокращений
- •Введение
- •Автоматизация работы в командной строке
- •Применение автоматизации
- •Особенности командных оболочек
- •Основы разработки скриптов
- •Создание простого скрипта
- •Переменные
- •Работа с потоками ввода-вывода
- •Расширенные возможности разработки скриптов
- •Массивы
- •Математические операции
- •Условный оператор if
- •Оператор выбора case
- •Функции
- •Система контроля версий git
- •Упражнения
- •Индивидуальные задания
- •Контрольные вопросы
- •Список литературы
Лабораторные работы по курсу
Операционные системы
Лабораторная работа 3
Разработка скриптов на языке bash
2022
Оглавление
Список сокращений 4
Введение 5
1. Автоматизация работы в командной строке 5
1.1. Применение автоматизации 5
1.2. Особенности командных оболочек 6
2. Основы разработки скриптов 7
2.1. Создание простого скрипта 7
2.2. Переменные 9
2.3. Работа с потоками ввода-вывода 11
3. Расширенные возможности разработки скриптов 15
3.1. Массивы 15
3.2. Математические операции 16
3.3. Условный оператор if 18
3.4. Оператор выбора case 21
3.5. Циклы 21
3.6. Функции 22
4. Система контроля версий git 24
5. Упражнения 25
6. Индивидуальные задания 33
7. Контрольные вопросы 34
8. Список литературы 34
Список сокращений
bash |
– |
Bourne again shell |
POSIX |
– |
Portable Operating System Interface |
stderr |
– |
standard error |
stdin |
– |
standard input |
stdout |
– |
standard output |
ОС |
– |
Операционная Система |
ПО |
– |
Программное Обеспечение |
|
|
|
Введение
Командная оболочка позволяет пользователю эффективно взаимодействовать с ОС Linux. При этом современные командные оболочки обладают не только возможностью обработки одиночных команд, вводимых пользователем, но и возможностью автоматизации такого процесса с помощью специальных скриптов, вызывающих заранее заданную последовательность команд. Это дает пользователю мощный инструмент для ускорения работы и чрезвычайно часто применяется на практике.
Целью данной лабораторной работы является освоение первичных навыков разработки скриптов командной оболочки bash для ОС Linux на примере лабораторного стенда на базе микрокомпьютера Raspberry Pi с установленной Raspberry Pi OS.
Автоматизация работы в командной строке
Применение автоматизации
В современных дистрибутивах ОС Linux всегда содержится командная оболочка, которую принято называть shell. Несмотря на то, что она по умолчанию не является частью ядра Linux, командная оболочка нашла широкое применение как средство доступа ко многим функциям ОС и при отсутствии графического интерфейса выступает основным инструментом пользователя[ CITATION Тан15 \l 1049 ]. Поэтому, при каждом входе пользователя в систему, ОС автоматически порождает связанный с этим пользователем процесс командной оболочки.
Основной задачей командной оболочки является интерпретация введенных пользователем команд, запуск указанных в команде утилит и программ с соответствующими аргументами и ключами, а также возврат результата работы команды пользователю. Если в команде содержатся ошибки или же указаны несуществующие утилиты или программы, то командная оболочка возвращает пользователю сообщение об ошибке. Применение стиля взаимодействия с ОС через ввод единичных команд был продемонстрирован в Лабораторной работе 1 и Лабораторной работе 2.
Однако зачастую при работе пользователя с ОС Linux, и еще чаще при разработке приложений или создания комплекса программного обеспечения (ПО) для встраиваемых систем, требуется автоматизация процедуры ввода команд и анализа их результата. Для этого в командной оболочке существует поддержка возможности создания некоторого скрипта (сценария) – исполняемого файла, в котором записана заранее заданная пользователем последовательность команд. При этом современные командные оболочки поддерживают многие возможности языков программирования, такие как переменные, массивы, условные операторы, циклы, функции и так далее. Это позволяет пользователю не просто создавать детерминированную последовательность вызовов, но и реализовывать сложные логические конструкции, в которых последовательность вызова команд зависит от входной информации.
На практике разработка сценариев командной оболочки в ОС Linux применяется для автоматизации многих жизненных ситуаций, например:
запуск логически и/или информационно связанных между собой процессов;
запуск часто используемых пользователем наборов команд;
запуск сложных команд, содержащих большое количество опций и аргументов;
выполнение однотипных операций с большим количеством файлов;
анализ содержимого текстовых файлов;
и других.
В некоторых ситуациях с помощью скриптов командной оболочки реализуются функционально и логически законченные программы. Как правило такой подход используют для небольших вспомогательных программ, когда применение языков программирования затруднено или нецелесообразно.