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:下次应该早点写博客做记录啊, 现在好多都记不起来了。。。。)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章