Тренировочные задания по написанию скриптов (сценариев) оболочки bash

1. Содержание скрипта: замена существующего расширения в имени файла на заданное. Исходное имя файла и новое расширение передаются скрипту в качестве параметров. Основное средство: нестандартное раскрытие переменных. Усложнение: предусмотреть штатную реакцию на отсутствие расширения в исходном имени файла.

2. Содержание скрипта: выдача сразу трех временных штампов для заданного имени файла.Основные средства: переменные оболочки, gawk, командная подстановка. Усложнение: обработка произвольного числа имен, реакция на ошибки.

3. Содержание скрипта: выделение из исходной строки подстроки с границами, заданными порядковыми номерами символов в исходной строке. Усложнение: предусмотреть возможность не выделения, а удаления подстроки. Основные средства: команда cut, переменные оболочки.

4. Содержание скрипта: добавление в конец каждого текстового файла текущего временного штампа. Имена текстовых файлов передаются скрипту в качестве параметров, их число заранее не известно. Основные средства: структура for, переадресация.

5. Содержание скрипта: организация таймера — периодическая выдача на stdout сообщения о том, сколько времени прошло после запуска таймера (т.е. скрипта) и сколько осталось до конца работы. Параметры таймера передать при запуске скрипта через параметры. Основные средства: структуры while или until, средства для организации счетчика.

6. Содержание скрипта: получение рекурсивного списка файлов, имеющих длинные имена (больше заданного числа), сортировка по полному имени файлов (включающему полное путевое имя, начиная с /) и выдача полученного списка во вьюер и, одновременно, в файл. Параметры скрипта: имя директории, в которой производится рекурсивный поиск, и натуральное число — ми- нимальная длина имени. Основные средства: структура for, команда find, нестандартное раскрытие переменной, использование готового списка файлов, команда tee.

Справочный материал

Execute Bash Shell Online

http://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/post/47163/

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

https://helpugroup.ru/luchshie-onlajn-terminaly-linux-i-redaktory-bash/

http://scrumpoker.eu/edumat/bash.pdf