shell編程--計算當前目錄下子目錄的個數

大晚上的寫的一個shell ,大概是因爲很久以前看的鳥哥的shell編程 , 有好多東西都不怎麼會了。。。。花了很久的時間調bug ,改程序, 感覺自己對shell 又有了一定的
瞭解吧。。。
#!/bin/bash

PATH="~/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/ibin"

export PATH 

function cate() 
{
tmpx=0 
for file in `ls $1` 
do 
    echo $file 
    if [ -d  $1"/"$file  ]
    then  		 
	    let i+=1     	
        cate $1"/"$file
        
    fi

done   
} 

i=0
path="." 
cate $path
echo $i
</pre><pre name="code" class="plain">首先想說的是 bash 和sh , 一開始寫了#!/bin/bash , 然後就+x , sh 運行, 結果就莫名的報了一個 ls not found  ,let no found 的錯誤 , 百度了很久都沒有解決, 
後來突然腦洞大開 使用了 bash 竟然ok了。。。
</pre><pre name="code" class="plain">然後是第二個問題,算是邏輯設計問題吧, 因爲涉及到了遞歸操作, 然後又對shell 的變量不是很瞭解, 於是就 很天真的寫了一個帶return 版的shell , 
<pre name="code" class="plain">#!/bin/bash

PATH="~/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/ibin"

export PATH 

function cate() 
{
i=0 
tmpx=0 
for file in `ls $1` 
do 
    echo $file 
    if [ -d  $1"/"$file  ]
    then  		 
	    let i+=1     	
      tmp=$(cate $1"/"$file)
        i=`expr $i +$tmp` 
    fi

done 
return $i  
} 

i=0
path="." 
local=$(cate $p) 
echo $local  
</pre>shell 大概就是這個樣子吧, 然後返回的時候 tmp 很奇怪的編程了我目錄下的一個文件名, 然後就和 + $i  一起,發生了問題, 這個我至今還沒有想明白, 如果有大牛
知道, 請告訴我這個小菜逼。。。。
其他麼,總的就是複習了一下shell 的一些知識吧, 感覺還是挺有用的。
(ps:下次應該早點寫博客做記錄啊, 現在好多都記不起來了。。。。)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章