我不知道我花了很多小時來處理這個問題。我需要寫腳本。腳本應該遞歸地循環通過當前目錄中的子目錄。它應該檢查每個目錄中的文件計數。如果文件數量大於10,它應該在名爲「BigList」的文件中寫入這些文件的所有名稱,否則應該寫入文件「ShortList」。這應該看起來像Bash腳本通過子目錄循環並寫入文件
---<directory name>
<filename>
<filename>
<filename>
<filename>
....
---<directory name>
<filename>
<filename>
<filename>
<filename>
....
我的腳本只有在子目錄輪流不包含子目錄時纔有效。 我對此感到困惑。因爲它不像我所期望的那樣工作。這將花費不到5分鐘的時間在我的任何編程語言上編寫。 請幫忙解決這個問題,因爲我不知道該怎麼做。 這裏是我的腳本
#!/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
您的代碼縮進難以理解且難以理解。 – 2014-10-18 06:00:38
對不起,請幫助做到這一點,而不使用找到 – ketazafor 2014-10-18 06:38:31