Shell编程:在当前目录下遍历所有文件和子目录及子目录下的文件

时间:2023-01-11 12:07:43

#!/bin/bash

file_count=0

folder_count=0

function FILE_COUNT

{

for file in *

do

if test -f $file

then 

((file_count++))

echo $file

elif test -d $file

then

((folder_count++))

echo $file

cd $file

FILE_COUNT

cd ..

fi

done

}

FILE_COUNT

echo "There are $file_count files and $folder_count folders in : " ;pwd

刚刚开始学习Shell编程,请多多指教。这个程序虽然简单,却花了我将近两个小时,原因就是很多细节没注意到,然后就一直反复调试。总结如下:

1、 一定要先在脑海中想清楚程序构造,这样才能做出精简高效的程序。

2、调试BUG时,一步一步分析程序运行的状态,往往BUG就出现在不起眼的地方。

3,、运行这个遍历程序前,先估计你当前目录下大概有多少子目录和文件,不然,会像我一样,一不小心就在根目录下运行了这个程序,已经二十分钟了,它还没有停下的意思。估计能赶超小彩旗。。。