我正在尝试编写一个函数,它将遍历文件目录并给我最深处目录的值。我写了这个函数,看起来好像是要到每个目录,但我的计数器似乎根本不起作用。递归函数返回目录文件树的深度
dir_depth(){
local olddir=$PWD
local dir
local counter=0
cd "$1"
for dir in *
do
if [ -d "$dir" ]
then
dir_depth "$1/$dir"
echo "$dir"
counter=$(($counter + 1))
fi
done
cd "$olddir"
}
我希望它做的是饲料功能的目录,比如/家,它会在每个子目录下去,发现最深的价值。我试图更好地学习递归,但我不确定我做错了什么。
是的,理想情况下,我会用Python来做这件事,但我正在努力学习一下Bash。我需要了解你对expr做了什么,看起来很有趣。谢谢您的帮助! – Jef 2010-12-02 01:25:00
@Jef:Bash有正则表达式匹配,可以用来代替`expr`。 – 2010-12-02 01:57:19
@Jef,我使用[本指南](http://tldp.org/LDP/abs/html/string-manipulation.html)进行字符串操作。 – 2010-12-02 05:07:33