Тренировочные задания по написанию скриптов (сценариев) оболочки bash
1. Содержание скрипта: замена существующего расширения в имени файла на заданное. Исходное имя файла и новое расширение передаются скрипту в качестве параметров. Основное средство: нестандартное раскрытие переменных. Усложнение: предусмотреть штатную реакцию на отсутствие расширения в исходном имени файла.
2. Содержание скрипта: выдача сразу трех временных штампов для заданного имени файла.Основные средства: переменные оболочки, gawk, командная подстановка. Усложнение: обработка произвольного числа имен, реакция на ошибки.
3. Содержание скрипта: выделение из исходной строки подстроки с границами, заданными порядковыми номерами символов в исходной строке. Усложнение: предусмотреть возможность не выделения, а удаления подстроки. Основные средства: команда cut, переменные оболочки.
4. Содержание скрипта: добавление в конец каждого текстового файла текущего временного штампа. Имена текстовых файлов передаются скрипту в качестве параметров, их число заранее не известно. Основные средства: структура for, переадресация.
5. Содержание скрипта: организация таймера — периодическая выдача на stdout сообщения о том, сколько времени прошло после запуска таймера (т.е. скрипта) и сколько осталось до конца работы. Параметры таймера передать при запуске скрипта через параметры. Основные средства: структуры while или until, средства для организации счетчика.
6. Содержание скрипта: получение рекурсивного списка файлов, имеющих длинные имена (больше заданного числа), сортировка по полному имени файлов (включающему полное путевое имя, начиная с /) и выдача полученного списка во вьюер и, одновременно, в файл. Параметры скрипта: имя директории, в которой производится рекурсивный поиск, и натуральное число — ми- нимальная длина имени. Основные средства: структура for, команда find, нестандартное раскрытие переменной, использование готового списка файлов, команда tee.
Справочный материал
Execute Bash Shell Onlinehttp://snakeproject.ru/python/bashv1.htm
http://linuxgeeks.ru/bash-intro.htm
http://snakeproject.ru/rubric/article.php?art=bash_junior
https://habr.com/ru/post/319670/
https://habr.com/ru/company/ruvds/blog/328346/
https://habr.com/company/ruvds/blog/325522/
http://linuxgeeks.ru/bash-1.htm
https://docs.microsoft.com/en-us/windows/wsl/install-win10
http://tux-the-penguin.blogspot.com/2010/10/bash-1.html