Здравствуйте, вот уже который час пытаюсь сделать простенький скрипт, но не выходит. На любом языке программирования без проблем бы сделал, а со скриптом что-то не получается, видно что-то не так понял в синтаксисе. Никак не могу сделать. Нужно сделать такой скрипт который начиная от текущей директории идет рекурсивно по папкам и считает количество файлов в каждой из них. Если количество файлов больше 10, то добавляется в файл с именем BigList, иначе в ShortList. Мой скрипт работает как попало. Видно что я что-то с переменными сделал, что при выходе из рекурсии переменные не имеет того же значения что и до рекурсии. Нужно сделать скрипт без использования других команд, таких как find и так далее. Вот собственно сам скрипт. Подскажите пожалуйста что не так.
#!/bin/bash
parent_dir=""
if [ -d "$1" ]; then
path=$1;
else
path=$(pwd)
fi
parent_dir=$path
loop_folder_recurse() {
local files_list=""
local cnt=0
for i in "$1"/*;do
if [ -d "$i" ];then
echo "dir: $i"
parent_dir=$i
echo before recursion
loop_folder_recurse "$i"
echo after recursion
if [ $cnt -ge 10 ]; then
echo -e "---"$parent_dir >> BigList
echo -e $file_list >> BigList
else
echo -e "---"$parent_dir >> ShortList
echo -e $file_list >> ShortList
fi
elif [ -f "$i" ]; then
echo file $i
if [ $cur_fol != $main_pwd ]; then
file_list+=$i'\n'
cnt=$((cnt + 1))
fi
fi
done
}
echo "Base path: $path"
loop_folder_recurse $path