Напишите функцию для подсчета среднего размера файла в директории.
- путь к директории должен передаваться параметром, например avgfile /home/username;
- функция должна проверять, что такая директория существует, подсчитывать и выводить на экран средний размер файла в ней;
- при подсчете не нужно учитывать поддиректории и символьные ссылки, считать только средний размер файлов в заданной директории.
- для вывода среднего достаточно использовать целочисленное значение (стандартное деление в bash)
Предлагается выполнить задание сначала без открытия подсказки своим способом, при возникновении сложностей воспользоваться подробным алгоритмом решения, который описан ниже.
Подсказка - Примерный алгоритм решения
- В скрипте объявите функцию. Поместите аргумент в переменную с понятным названием. Проверьте, существует ли заданная в аргументе директория с помощью if.
- Внутри функции объявите вспомогательные переменные. Одна переменная будет служить для сохранения суммы размеров всех файлов в директории, а другая будет содержать количество файлов.
- Для перебора файлов внутри директории используйте цикл for.
- Внутри цикла с помощью if проверяйте, является ли данный объект файлом.
- Если это файл, то к переменной суммы добавляйте размер файла и увеличивайте на один переменную с количеством файлов (получить размер одного файла можно с помощью stat -c "%s" filename).
- После выхода из цикла for (перебора всех файлов в директории), разделите значение переменной с суммой размеров файлов на количество этих файлов и выведите результат на экран.
- В конце скрипта, вызовите только что написанную функцию с аргументом, например avgfile $1
- Запускайте скрипт ./script3.sh /home/username и смотрите результат.
- (необязательно) Если все работает, данную функцию можно добавить к себе в .bash_profile и использовать для работы.