大晚上的写的一个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:下次应该早点写博客做记录啊, 现在好多都记不起来了。。。。)