Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Основы программирования на языке Bash

Покупка
Новинка
Артикул: 846533.01.99
Доступ онлайн
150 ₽
В корзину
В данном учебном пособии рассматриваются особенности программирования на языке Bash. Рассматриваются основные особенности языка, которые рассматриваются в контексте операционной системы Linux. В пособии подробно описываются основные программные структуры и типы данных: условные конструкции, циклы. Функции, модули, строки и массивы. Особенностью данного пособия является большое количество рабочих программ, иллюстрирующих те или иные особенности программирования на Bash. Для студентов и преподавателей.
Пирогов, В. Ю. Основы программирования на языке Bash : учебное пособие / В. Ю. Пирогов. - Москва : ФЛИНТА, 2024. - 94 с. - ISBN 978-5-9765-5653-9. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2179290 (дата обращения: 21.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
 
 
 
В.Ю. Пирогов 
 
 
 
ОСНОВЫ ПРОГРАММИРОВАНИЯ  
НА ЯЗЫКЕ Bash 
 
 
 
 
Учебное пособие 
 
 
 
 
 
 
 
 
 
 
 
          Москва                                      Шадринск 
                    Издательство «ФЛИНТА»                          ШГПУ 
                                      2024                                              2024 
 
 


УДК 004.42(075.8) 
ББК 32.973.2я73 
П33 
 
 
Рецензенты: 
кандидат педагогических наук, доцент Д.А. Слинкин, 
кандидат физико-математических наук, доцент Д.М. Гордиевских 
 
 
 
 
Пирогов В.Ю. 
П33  
Основы программирования на языке Bash : учеб. пособие / 
В.Ю. Пирогов. — Москва : ФЛИНТА, 2024. — 94 с. — ISBN 
978-5-9765-5653-9 (ФЛИНТА); ISBN 978-5-87818-737-4 (ШГПУ). — 
Текст : электронный. 
 
В данном учебном пособии рассматриваются особенности 
программирования на языке Bash. Рассматриваются основные 
особенности 
языка, 
которые 
рассматриваются 
в 
контексте 
операционной системы Linux. В пособии подробно описываются 
основные программные структуры и типы данных: условные 
конструкции, 
циклы. 
Функции, 
модули, 
строки 
и 
массивы. 
Особенностью данного пособия является большое количество рабочих 
программ, 
иллюстрирующих 
те 
или 
иные 
особенности 
программирования на Bash.  
Для студентов и преподавателей. 
 
УДК 004.42(075.8) 
                                                                                                         ББК 32.973.2я73 
 
 
 
 
 
 
 
ISBN 978-5-9765-5653-9 (ФЛИНТА)                       © Пирогов В.Ю., 2024 
ISBN 978-5-87818-737-4 (ШГПУ)                            © ШГПУ
, 2024 
 
2 


ОГ
ЛАВЛЕНИЕ 
 
ВВЕДЕНИЕ ................................................................................................. 4 
1. ИНСТРУМЕНТЫ РАБОТЫ НА BASH ............................................ 6 
2. ВЫВОД ДАННЫХ ............................................................................. 8 
2.1. Команда echo ................................................................................ 8 
2.2. Управляющие конструкции внутри строк 
................................. 9 
2.3. Команда вывода printf 
................................................................. 
11 
3. КОММЕНТАРИИ В ПРОГРАММАХ НА ЯЗЫКЕ BASH 
............ 13 
4. ПЕРЕМЕННЫЕ 
................................................................................. 14 
5. ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ ................................... 178 
6. ВЕЩЕСТВЕННЫЕ ЧИСЛА И ОПЕРАЦИИ НАД НИМИ 
........... 22 
7. ВВОД ДАННЫХ С КЛАВИАТУРЫ 
............................................... 26 
8. ПАРАМЕТРЫ КОМАНДНОЙ СТРОКИ........................................ 28 
9. ПЕРЕНАПРАВЛЕНИЕ И КОНВЕЙЕРИЗАЦИЯ 
........................... 31 
10. ПРОГРАММНЫЕ СТРУКТУРЫ................................................... 36 
10.1. Условные конструкции ............................................................ 36 
10.2. Циклы ........................................................................................ 42 
10.3. Функции .................................................................................... 46 
10.4. Модули и программы 
............................................................... 53 
11. МАССИВЫ В BASH....................................................................... 63 
12. ОПЕРАЦИИ НАД СТРОКАМИ 
.................................................... 72 
13. ФАЙЛЫ 
............................................................................................ 81 
ЗАКЛЮЧЕНИЕ 
......................................................................................... 89 
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ................................ 90 
ПРИЛОЖЕНИЯ ........................................................................................ 91 
 
 
 
3 


ВВЕДЕНИЕ 
 
Bash представляет собой и командный интерпретатор, и язык 
программирования, используемый в Unix-подобных операционных 
системах. Bash это аббревиатура «Bourne-Again Shell» (и снова 
оболочка Борна), указывающая на Стивена Борна (Stephen Bourne), 
который разрабатывал предшественника Bash – командную оболочку 
sh. В операционных системах семейства Linux Bash устанавливается 
по умолчанию.  
Интерпретатор Bash работает как в интерактивном, так и в 
программном 
режиме. 
Интерактивный 
режим 
предполагает 
выполнение строк, содержащих команду в строке терминала. 
Программный 
режим 
основан 
на 
выполнении 
строк-команд, 
содержащихся в текстовом исполняемом файле. Соответственно 
набор команд Bash дополнен структурами, характерными для 
алгоритмических языков: условные конструкции, циклы, функции.  
Последнее 
позволяет 
назвать 
Bash 
полноценным 
языком 
программирования, позволяющим создавать программный код разной 
степени сложности. Программные модули1 на языке Bash, в свою 
очередь, могут запускаться как команды, т.е. становятся частью 
командного языка.  
Язык программирования Bash является частью операционной 
системы, инструментом, позволяющим автоматизировать многие 
операции, 
характерные 
для 
деятельности 
системных 
администраторов. По этой причине Bash является незаменимым 
инструментом администрирования Unix-подобных операционных 
систем. С помощью Bash можно автоматизировать повторяющиеся 
операции, например, архивацию данных, анализ текстовых файлов, 
                                        
1 
Ниже понятие модуля будет рассмотрено в отдельном разделе. Здесь мы только отметим, что обычно 
программным модулем называют файл, содержащий программный код.  
4 


проверка сетевых параметров, удаления не нужных файлов и многое 
другое.  
В операционных системах семейства Unix имеется огромное 
количество системных программ, выполняющих самые разные 
действия. Благодаря таким технологиям как конвейеризация и 
перенаправление они легко интегрируются в программы на языке 
Bash. Мы не ставили своей целью дать справку по всем системным 
программам операционной системы, а лишь показываем принципы их 
программного использования. 
Язык Bash имеет текстовый интерфейс, т.е.  команда в 
командной строке или текстовый файл, содержащий программу на 
этом языке. Для него нет графического интерфейса. Это и дань 
традиции, поскольку когда-то операционная система начиналась 
именно с текстовых консольных окон. Но это и естественный подход, 
поскольку и в современных условиях очень часто доступ (особенно 
удаленный) к Unix-серверам возможен только через окно терминала.   
Целями данного учебного пособия являются: 
1. 
Показать, что Bash не просто набор некоторых команд, 
позволяющих 
создавать 
простые 
сценарии 
по 
выполнению 
определенных действий в операционной системе, но и полноценный и 
богатый возможностями язык программирования.   
2. 
Дать сжатое изложения Bash, позволяющее быстро перейти 
к написанию полноценных программного кода на этом языке. 
Мы 
предполагаем, 
что, 
во-первых, 
читатель 
знаком 
с 
программированием на любом из существующих алгоритмических 
языков, во-вторых, знаком с командами операционной системы Linux 
(все равно какой). Эти знания, на наш взгляд, помогут легко освоить 
основы написания программ на языке Bash.  
 
 
5 


1. ИНСТРУМЕНТЫ РАБОТЫ НА BASH  
 
Программа на языке Bash это обычный текстовый файл, 
состоящий из команд языка Bash, который: 
1. Сделан исполняемым. 
2. Содержит в первой строке указание на программу, которая 
будет его обрабатывать: 
 #!/bin/bash 
Хорошим инструментом для работы с программами на языке 
Bash является программа (файловый менеджер) Midnight Commander 
(или просто mc), которая запускается в окне консоли (см. Рис. 1).  
 
Рис. 1. Окно файлового менеджера Midnight Commander 
 
Для установки файлу атрибуту «Исполняемый» достаточно 
обратиться к меню mc: «Файл/Права доступа» и поставить 
соответствующую отметку. Но можно это сделать командой 
chmod 766 имя_файла 
В результате для владельца файл «имя_файла» становится 
исполняемый. В операционной системе Linux расширение файла не 
обязательный атрибут, хотя для программ на языке Bash обычным 
расширением является .sh. 
6 


У программы Midnight Commander есть свой простой текстовый 
редактор с чувствительным к языку Bash синтаксисом, с помощью 
которого можно набирать и редактировать простые программы (см. 
Рис. 2).  
 
Рис. 2. Редактор программы Midnight Commander с программой на языке Bash 
 
В качестве редактора для программ Bash можно использовать 
любой другой текстовый редактор, например, Nano или Vim. Но для 
разработки большой программы, конечно, есть смысл использовать 
профессиональную среду разработки. В качестве такой среду, можно, 
например, использовать универсальную среду Geany, которая легко 
устанавливается в Linux из стандартного репозитория. Есть и 
профессиональная среда разработки basheclipse, которую можно 
установить из Интернет.    
Контрольные вопросы 
1 
Укажите как с помощью Midnight Commander сделать 
скрипт на Bash исполняемым. 
2 
Укажите команду, с помощью которой можно сделать 
скрипт на Bash исполняемым. 
3 
Укажите смысл первой строки скрипта (программы) на 
Bash. 
 
7 


2. ВЫВОД ДАННЫХ 
 
2.1. Команда echo 
 
Программа на любом языке программирования оперирует 
данными. Эти данные как-то должны попасть в программу. Результат 
выполнения программы – это тоже данные, и они должны быть или 
показаны пользователю или переданы другой программе.  
Начнем с простого вывода в консольное окно 
#!/bin/bash 
echo "Hello, world!"; 
echo "Hello, world"; 
echo "Hello, worl"; 
echo "Hello, wor"; 
echo "Hello, wo"; 
echo "Hello, w"; 
echo "Hello, "; 
echo "Hello,"; 
echo "Hello"; 
Рис. 3. Вывод на консоль строковых констант 
 
Результат выполнения программы  
Hello, world! 
Hello, world 
Hello, worl 
Hello, wor 
Hello, wo 
Hello, w 
Hello,  
Hello, 
Hello 
8 


Как легко понять echo – это команда, выводящая на консоль, 
указанную в качестве параметра, строковую константу. Двойные 
кавычки в программе на рис. 3 можно заменить одинарными:  
echo 'Hello, world!' 
Следует отметить, что одинарные и двойные кавычки далеко не 
всегда взаимозаменяемы. Ниже мы это обсуждаем.  
В программе на рис. 3 в конце каждой программной строки 
стоит точка с запятой. Это в принципе не обязательное требование, но 
давайте возьмем это за правило, так как точка с запятой строку, в 
которой стоит несколько операторов более понятной. 
Для запуска выше представленной программы (назовем ее 
pr1.sh) следует сделать ее исполняемой, о чем мы писали в 
предыдущем разделе. Соответственно запустить ее можно командой 
./pr1.sh 
при условии, что программа находится в текущем каталоге, в 
противном 
случае следует указать полный путь к ней. 
Либо запустить ее командой 
bash ./pr1.sh 
здесь команда bash это имя программы-интерпретатора языка 
Bash.  
 
2.2. Управляющие конструкции внутри строк 
 
В представлении строк важную роль играет символ «обратный 
слеш» - '\'. Этот символ позволяет вставлять в строку управляющие 
конструкции. Говорят, что этот символ экранирует следующий за ним 
символ, меняет его свойство. Типичным примером использования '\' 
будет ситуация, когда внутри строки, ограниченный двойными 
кавычками мы хотим также использовать двойные кавычки. Чтобы 
9 


эти конструкции работали для команды echo нужно указывать ключ -
e.  
echo -e "\"Привет\", мир!" 
Результат выполнения  
"Привет", мир! 
Впрочем, возможен и такой вариант с тем же результатом 
echo -e '"Привет", мир!' 
Перечислим варианты использования символа «обратный слеш» 
 
\\     – вывод символа «\»; 
 
\a     – звуковой сигнал; 
 
\b     – удаление предыдущего символа; 
 
\c     – подавление дальнейшего вывода; 
 
\e     – прекращение работы; 
 
\f     – переход к следующей терминальной странице; 
 
\n    – переход к следующей строке; 
 
\r     – переход к началу строки; 
 
\t     – горизонтальная табуляция; 
 
\v    – вертикальная табуляция; 
 
\0NNN 
– 
символ, 
определяемый 
трехзначным 
восьмеричным числом (три восьмибитовых цифры); 
 
\xHH 
– 
символ, 
определяемый 
двухзначным 
шестнадцатеричным числом;  
 
\uHHHH – символ Unicode с шестнадцатеричным кодом 
(четыре цифры в 16-ричной системе счисления); 
 
UHHHHHHHH – символ Unicode с шестнадцатеричным 
кодом (восемь цифр в 16-ричной системе счисления). 
 
\cx – символ соответствующий ctrl-x (например, \cc - ctrl-c). 
Например: (см. Рис 4) 
#!/bin/bash 
10 


Доступ онлайн
150 ₽
В корзину