Задание 2 (индивидуальное): параметры сценариев

  1. Написать сценарий, который принимает единственное имя файла как аргумент, и добавляет разрешения на выполнение для владельца, но только если это обычный файл. Сценарий должен проверять, что у него точно один аргумент, в противном случае должен вывести сообщение об использовании сценария.

  2. Написать сценарий, который выводит для каждого своего аргумента вывод команды ls -l, если аргумент является именем регулярного файла. Если сценарий запущен без аргументов, он должен вывести сообщение об использовании сценария.

  3. Написать сценарий, который принимает путь к каталогу как аргумент. Если такой каталог существует, необходимо выдать об этом сообщение. Если по этому пути существует другой элемент файловой системы (не каталог), необходимо выдать сообщение об ошибке. В противном случае необходимо попытаться создать каталог. В случае неудачи необходимо выдать сообщение о том, что создать каталог не удалось. Если сценарий запущен с неправильным количеством аргументов, он должен вывести сообщение об использовании сценария.

  4. Написать сценарий, который принимает путь к каталогу и имя пользователя как аргументы. Если такой каталог существует, необходимо определить количество файлов (любого типа), принадлежащих заданному пользователю, при помощи команды find. Если каталог не существует или по заданному пути существует другой элемент файловой системы (не каталог), необходимо выдать сообщение об ошибке. Если сценарий запущен с неправильным количеством аргументов, он должен вывести сообщение об использовании сценария.

  5. Написать сценарий, который принимает несколько путей к каталогам как аргументы. Далее из всех каталогов первый, который существует и действительно является каталогом, необходимо сделать текущим. В случае ошибки при смене каталога вывести об этом сообщение. Если ни один из путей не обозначает существующий каталог, также вывести об этом сообщение. Если сценарий запущен без аргументов, он должен вывести сообщение об использовании сценария.

  6. Написать сценарий, который принимает путь к файлу как аргумент, и проверяет его на существование. Если файл существует и является обычным файлом, необходимо вывести об этом сообщение. Если файл существует, но его тип отличается от обычного файла, вывести сообщение об ошибке. Иначе необходимо попытаться создать пустой файл по указанному пути. В случае ошибки при создании вывести об этом сообщение. Сценарий должен проверять, что у него точно один аргумент, в противном случае должен вывести сообщение об использовании сценария.

  7. Написать сценарий, который принимает путь к файлу и строку как аргументы, и проверяет файл на существование. Если файл существует и является обычным файлом, сценарий должен проверить, содержится ли в нём заданная строка-шаблон при помощи команды grep. Если строка содержится, вывести сообщение «Yes», иначе вывести «No». Если файл не существует или его тип отличается от обычного файла, или его не удаётся обработать, вывести сообщение об ошибке. Если сценарий запущен не с двумя аргументами, он должен вывести сообщение об использовании сценария.

  8. Написать сценарий, который принимает несколько путей к каталогам как аргументы и должен проверить, что все они существуют и являются каталогами. Если это не так, необходимо вывести сообщение об ошибке. В противном случае необходимо попытаться удалить каждый из этих каталогов. При этом после удаления каждого каталога необходимо вывести сообщение об ошибке, если его удалить не получилось. Если сценарий запущен без аргументов, он должен вывести сообщение об использовании сценария.

  9. Написать сценарий, который принимает несколько путей к файлам как аргументы и должен проверить, что все они существуют и являются обычными файлами. Если это не так, необходимо вывести сообщение об ошибке. В противном случае необходимо найти файл с максимальным количеством слов. Необходимо вывести сообщение об ошибке, если определить количество слов какого-либо файла не получилось. Если сценарий запущен без аргументов, он должен вывести сообщение об использовании сценария.

  10. Написать сценарий, который принимает несколько путей к каталогам как аргументы и должен проверить, что все они существуют и являются каталогами. Если это не так, необходимо вывести сообщение об ошибке. В противном случае необходимо попытаться определить количество файлов любого типа, содержащегося в каталоге (на первом уровне вложенности). Если определить это количество для какого-либо из каталогов невозможно, необходимо вывести сообщение об ошибке. Если сценарий запущен без аргументов, он должен вывести сообщение об использовании сценария.

  11. Написать сценарий, который принимает путь к файлу и строку как аргументы, и проверяет файл на существование. Если файл существует и является обычным файлом, сценарий должен определить количество строк, содержащих заданную подстроку-шаблон, при помощи команды grep. Если файл не существует или его тип отличается от обычного файла, или его не удаётся обработать, вывести сообщение об ошибке. Если сценарий запущен не с двумя аргументами, он должен вывести сообщение об использовании сценария.

  12. Написать сценарий, который принимает несколько путей к каталогам как аргументы и должен проверить, что все они существуют и являются каталогами. Если это не так, необходимо вывести сообщение об ошибке. В противном случае необходимо найти тот каталог из них, который содержит минимальное количество подкаталогов на всех уровнях вложенности. Если для какого-то из каталогов это определить не удаётся, необходимо вывести сообщение об ошибке. Если сценарий запущен без аргументов, он должен вывести сообщение об использовании сценария.

  13. Написать сценарий, который принимает несколько путей к файлам как аргументы и должен вывести в стандартный поток содержимое первого из них, который существует, является обыкновенным файлом, и время его последнего изменения позднее всех остальных файлов из списка, которые также являются обыкновенными файлами.

  14. Написать сценарий, который принимает несколько путей к файлам как аргументы и должен вывести в стандартный поток подробную информацию (команда ls -l) сначала обо всех файлах списка, которые являются каталогами, затем для всех обычных файлов, затем для блочных устройств и т. д. В конце необходимо отдельно вывести список всех несуществующих файлов.

  15. Написать сценарий, который принимает два пути к обычным файлам как аргументы. Для того файла, размер которого больше, сценарий должен проверить вхождение в него содержимое доугого файла при помощи команды grep. Сценарий должен проверять, что у него точно два аргумент, в противном случае должен вывести сообщение об использовании сценария. Также сценарий должен проверить, что оба файла существуют и являются обычными файлами, иначе он должен вывести сообщение об ошибке.

  16. Написать сценарий, который принимает два пути к каталогам как аргументы. Далее сценарий должен вывести обычные файлы, находящиеся в том из каталогов (на первом уровне вложенности), в котором таких файлов больше. Если сценарий запущен с неправильным количеством аргументов, он должен вывести сообщение об использовании сценария. Также сценарий должен вывести соответствующие сообщения, если какой-то из каталогов не существует, является файлом типа, отличного от каталога, или не удаётся прочитать его содержимое.

  17. Написать сценарий, который принимает путь к каталогу и имя пользователя как аргументы. Если такой каталог не существует, необходимо выдать об этом сообщение. Если по этому пути существует другой элемент файловой системы (не каталог) или доступ к каталогу недоступен, необходимо выдать сообщение об ошибке. В противном случае необходимо вывести все его подкаталоги, находящиеся на первом уровне вложенности, которые заданный пользователь имеет право просматривать и изменять их содержимое. Если сценарий запущен не с двумя аргументами, необходимо вывести сообщение об использовании сценария.