Илья Шпигорь - Программирование на Bash с нуля
Название: | Программирование на Bash с нуля | |
Автор: | Илья Шпигорь | |
Жанр: | Linux, Unix, Программирование: прочее | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | 2021 | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Программирование на Bash с нуля"
Аннотация к этой книге отсутствует.
Читаем онлайн "Программирование на Bash с нуля". [Страница - 99]
комбинации значения переменной LANGUAGE и кода ошибки. Получим такую
функцию print_error как в листинге 5-9.
Листинг 5-9. Скрипт для вывода сообщений об ошибках
1
#!/bin/bash
2
3
4
5
print_error()
{
declare -A messages
6
messages["ru_RU",1]="Не найден файл"
messages["ru_RU",2]="Нет прав для чтения файла"
7
8
9
messages["en_US",1]="File not found:"
messages["en_US",2]="Permission to read the file denied:"
10
11
12
echo "${messages[$LANGUAGE,$1]} $2" >> debug.log
13
14
}
15
16
print_error 1 "readme.txt"
Упражнение 3-14. Область видимости переменных
Скрипт из листинга 3-37 выведет на консоль следующий текст:
1
2
3
4
5
6
main1: var =
foo1: var = foo_value
bar1: var = foo_value
bar2: var = bar_value
foo2: var = bar_value
main2: var =
Начнём с вывода “main1” и “main2”. Переменная var объявлена в функции foo как локальная.
Поэтому она доступна только в foo и в вызываемой из неё функции bar. Следовательно, до
и после вызова foo переменная varсчитается необъявленной.
Ответы
318
В выводе “foo1” напечаталось значение foo_value. Оно было присвоено переменной только
что.
Далее идёт вывод “bar1”. Переменная var объявлена в функции foo, а bar вызывается из неё.
Поэтому тело функции bar тоже является областью видимости var.
Затем мы присваиваем var новое значение bar_value. Обратите внимание, что мы не объявляем новую глобальную переменной с именем var. Мы перезаписываем уже существующую
локальную переменную. Её значение bar_value мы получим в выводах “bar2” и “foo2”.
Ссылки на ресурсы
Общая информация
На русском языке
•
•
•
•
•
•
•
•
Цикл статей по истории электронных компьютеров⁵¹².
История ОС Unix⁵¹³.
История ОС Linux⁵¹⁴.
История ОС от Apple⁵¹⁵.
История мейнфреймов⁵¹⁶.
Лекция “История вычислительных машин”⁵¹⁷.
Лекция “Ретроспектива развития вычислительной техники”⁵¹⁸.
Статья “Статическая и динамическая типизация”⁵¹⁹.
На английском языке
• Цикл статей по истории электронных компьютеров⁵²⁰
• История ОС от Apple⁵²¹.
• Статья “Статическая и динамическая типизация”⁵²²
Bash
На русском языке
• Перевод книги Machtelt Garrels “Руководство по Bash для начинающих”⁵²³.
• Перевод книги Mendel Cooper “Advanced Bash-Scripting Guide”⁵²⁴ (“Искусство программирования на языке сценариев командной оболочки”).
⁵¹²https://habr.com/ru/post/408611
⁵¹³https://habr.com/ru/post/147774
⁵¹⁴https://habr.com/ru/post/95646
⁵¹⁵https://habr.com/ru/post/198016
⁵¹⁶http://www.thg.ru/cpu/mainframe_history/index.html
⁵¹⁷https://postnauka.ru/video/86550
⁵¹⁸https://postnauka.ru/video/38501
⁵¹⁹https://habr.com/ru/post/308484
⁵²⁰https://technicshistory.com/2017/08/29/the-electronic-computers-part-1-prologue
⁵²¹http://web.archive.org/web/20180702193510/http://kernelthread.com/publications/appleoshistory/
⁵²²https://www.destroyallsoftware.com/compendium/types?share_key=baf6b67369843fa2
⁵²³http://rus-linux.net/nlib.php?name=/MyLDP/BOOKS/Bash-Guide-1.12-ru/bash-guide-index.html
⁵²⁴https://www.opennet.ru/docs/RUS/bash_scripting_guide
Ссылки на ресурсы
• Шпаргалка по Bash командам⁵²⁵.
• Подводные камни Bash⁵²⁶.
На английском языке
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Книга Machtelt Garrels “Руководство по Bash для начинающих”⁵²⁷
Книга Mendel Cooper “Advanced Bash-Scripting Guide”⁵²⁸
Шпаргалка по Bash командам⁵²⁹
Bash Reference Manual⁵³⁰
Wiki ресурс⁵³¹ по использованию Bash.
Руководство по Bash⁵³².
Подводные камни Bash⁵³³.
Примеры неправильного использования GNU-утилит Useless Use of Cat Award⁵³⁴.
Регулярные выражения в утилите grep⁵³⁵.
Best practices по использованию Bash⁵³⁶.
Bash coding style на основе mywiki.wooledge.org⁵³⁷.
Bash coding style от Google⁵³⁸.
Сервис для анализа Bash-команд⁵³⁹.
Инструкция по локализации Bash-скриптов⁵⁴⁰
Unix-окружение
На русском языке
• Книга Алексея Федосеева “Введение в администрирование UNIX”⁵⁴¹.
• Книга Эрика Реймонда “Искусство программирования в Unix”⁵⁴².
⁵²⁵https://tproger.ru/translations/bash-cheatsheet
⁵²⁶https://habr.com/ru/company/mailru/blog/311762/
⁵²⁷https://tldp.org/LDP/Bash-Beginners-Guide/html/
⁵²⁸http://tldp.org/LDP/abs/html
⁵²⁹https://github.com/NisreenFarhoud/Bash-Cheatsheet
⁵³⁰https://www.gnu.org/software/bash/manual/html_node/index.html#SEC_Contents
⁵³¹https://wiki.bash-hackers.org
⁵³²http://mywiki.wooledge.org/BashGuide
⁵³³http://mywiki.wooledge.org/BashPitfalls
⁵³⁴http://www.smallo.ruhr.de/award.html
⁵³⁵https://www.cyberciti.biz/faq/grep-regular-expressions
⁵³⁶http://mywiki.wooledge.org/BashGuide/Practices
⁵³⁷https://github.com/bahamas10/bash-style-guide
⁵³⁸https://google.github.io/styleguide/shellguide.html
⁵³⁹https://explainshell.com/#
⁵⁴⁰https://mywiki.wooledge.org/BashFAQ/098
⁵⁴¹http://heap.altlinux.org/modules/unix_base_admin.dralex/index.html
⁵⁴²https://ru.wikipedia.org/wiki/Философия_Unix#Реймонд:_Искусство_программирования_в_Unix
320
--">
функцию print_error как в листинге 5-9.
Листинг 5-9. Скрипт для вывода сообщений об ошибках
1
#!/bin/bash
2
3
4
5
print_error()
{
declare -A messages
6
messages["ru_RU",1]="Не найден файл"
messages["ru_RU",2]="Нет прав для чтения файла"
7
8
9
messages["en_US",1]="File not found:"
messages["en_US",2]="Permission to read the file denied:"
10
11
12
echo "${messages[$LANGUAGE,$1]} $2" >> debug.log
13
14
}
15
16
print_error 1 "readme.txt"
Упражнение 3-14. Область видимости переменных
Скрипт из листинга 3-37 выведет на консоль следующий текст:
1
2
3
4
5
6
main1: var =
foo1: var = foo_value
bar1: var = foo_value
bar2: var = bar_value
foo2: var = bar_value
main2: var =
Начнём с вывода “main1” и “main2”. Переменная var объявлена в функции foo как локальная.
Поэтому она доступна только в foo и в вызываемой из неё функции bar. Следовательно, до
и после вызова foo переменная varсчитается необъявленной.
Ответы
318
В выводе “foo1” напечаталось значение foo_value. Оно было присвоено переменной только
что.
Далее идёт вывод “bar1”. Переменная var объявлена в функции foo, а bar вызывается из неё.
Поэтому тело функции bar тоже является областью видимости var.
Затем мы присваиваем var новое значение bar_value. Обратите внимание, что мы не объявляем новую глобальную переменной с именем var. Мы перезаписываем уже существующую
локальную переменную. Её значение bar_value мы получим в выводах “bar2” и “foo2”.
Ссылки на ресурсы
Общая информация
На русском языке
•
•
•
•
•
•
•
•
Цикл статей по истории электронных компьютеров⁵¹².
История ОС Unix⁵¹³.
История ОС Linux⁵¹⁴.
История ОС от Apple⁵¹⁵.
История мейнфреймов⁵¹⁶.
Лекция “История вычислительных машин”⁵¹⁷.
Лекция “Ретроспектива развития вычислительной техники”⁵¹⁸.
Статья “Статическая и динамическая типизация”⁵¹⁹.
На английском языке
• Цикл статей по истории электронных компьютеров⁵²⁰
• История ОС от Apple⁵²¹.
• Статья “Статическая и динамическая типизация”⁵²²
Bash
На русском языке
• Перевод книги Machtelt Garrels “Руководство по Bash для начинающих”⁵²³.
• Перевод книги Mendel Cooper “Advanced Bash-Scripting Guide”⁵²⁴ (“Искусство программирования на языке сценариев командной оболочки”).
⁵¹²https://habr.com/ru/post/408611
⁵¹³https://habr.com/ru/post/147774
⁵¹⁴https://habr.com/ru/post/95646
⁵¹⁵https://habr.com/ru/post/198016
⁵¹⁶http://www.thg.ru/cpu/mainframe_history/index.html
⁵¹⁷https://postnauka.ru/video/86550
⁵¹⁸https://postnauka.ru/video/38501
⁵¹⁹https://habr.com/ru/post/308484
⁵²⁰https://technicshistory.com/2017/08/29/the-electronic-computers-part-1-prologue
⁵²¹http://web.archive.org/web/20180702193510/http://kernelthread.com/publications/appleoshistory/
⁵²²https://www.destroyallsoftware.com/compendium/types?share_key=baf6b67369843fa2
⁵²³http://rus-linux.net/nlib.php?name=/MyLDP/BOOKS/Bash-Guide-1.12-ru/bash-guide-index.html
⁵²⁴https://www.opennet.ru/docs/RUS/bash_scripting_guide
Ссылки на ресурсы
• Шпаргалка по Bash командам⁵²⁵.
• Подводные камни Bash⁵²⁶.
На английском языке
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Книга Machtelt Garrels “Руководство по Bash для начинающих”⁵²⁷
Книга Mendel Cooper “Advanced Bash-Scripting Guide”⁵²⁸
Шпаргалка по Bash командам⁵²⁹
Bash Reference Manual⁵³⁰
Wiki ресурс⁵³¹ по использованию Bash.
Руководство по Bash⁵³².
Подводные камни Bash⁵³³.
Примеры неправильного использования GNU-утилит Useless Use of Cat Award⁵³⁴.
Регулярные выражения в утилите grep⁵³⁵.
Best practices по использованию Bash⁵³⁶.
Bash coding style на основе mywiki.wooledge.org⁵³⁷.
Bash coding style от Google⁵³⁸.
Сервис для анализа Bash-команд⁵³⁹.
Инструкция по локализации Bash-скриптов⁵⁴⁰
Unix-окружение
На русском языке
• Книга Алексея Федосеева “Введение в администрирование UNIX”⁵⁴¹.
• Книга Эрика Реймонда “Искусство программирования в Unix”⁵⁴².
⁵²⁵https://tproger.ru/translations/bash-cheatsheet
⁵²⁶https://habr.com/ru/company/mailru/blog/311762/
⁵²⁷https://tldp.org/LDP/Bash-Beginners-Guide/html/
⁵²⁸http://tldp.org/LDP/abs/html
⁵²⁹https://github.com/NisreenFarhoud/Bash-Cheatsheet
⁵³⁰https://www.gnu.org/software/bash/manual/html_node/index.html#SEC_Contents
⁵³¹https://wiki.bash-hackers.org
⁵³²http://mywiki.wooledge.org/BashGuide
⁵³³http://mywiki.wooledge.org/BashPitfalls
⁵³⁴http://www.smallo.ruhr.de/award.html
⁵³⁵https://www.cyberciti.biz/faq/grep-regular-expressions
⁵³⁶http://mywiki.wooledge.org/BashGuide/Practices
⁵³⁷https://github.com/bahamas10/bash-style-guide
⁵³⁸https://google.github.io/styleguide/shellguide.html
⁵³⁹https://explainshell.com/#
⁵⁴⁰https://mywiki.wooledge.org/BashFAQ/098
⁵⁴¹http://heap.altlinux.org/modules/unix_base_admin.dralex/index.html
⁵⁴²https://ru.wikipedia.org/wiki/Философия_Unix#Реймонд:_Искусство_программирования_в_Unix
320
--">
Книги схожие с «Программирование на Bash с нуля» по жанру, серии, автору или названию:
Марк Митчелл, Джеффри Оулдем, Алекс Самьюэл - Программирование для Linux. Профессиональный подход Жанр: Программирование: прочее Год издания: 2002 |
Николай Н. Иванов - Программирование в Linux. Самоучитель Жанр: Linux Год издания: 2012 |
Сергей Васильевич Волох - Ubuntu Linux с нуля Жанр: Linux Год издания: 2018 |
Сергей Васильевич Волох - Ubuntu Linux с нуля Жанр: Linux Год издания: 2022 |