我正在嘗試編寫一個函數,它將遍歷文件目錄並給我最深處目錄的值。我寫了這個函數,看起來好像是要到每個目錄,但我的計數器似乎根本不起作用。遞歸函數返回目錄文件樹的深度
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