LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: eeslook

请教:Shell统计某一目录下不同类型文件个数脚本

[复制链接]
发表于 2009-10-23 14:18:11 | 显示全部楼层
楼主:
你的问题并不复杂。我看了你介绍的文章。其实,按全局变量的哪一个例子就可以了。
http://www.ibm.com/developerworks/cn/linux/l-cn-bashrecur/
步骤
1)
取起始目录下的文件,如是普通文件即统计(全局变量),如是目录,放入数组中(使用局部变量)。
2)
递归遍历目录数组
3)结果在全局变量中,不需通过return返回。

http://www.ibm.com/developerworks/cn/linux/l-cn-bashrecur/
文章中全局变量的例子的例子8第15行的return  $rtn不是实质性的东西。
所以,这只是一个递归遍历目录的问题。
当然,你可以考虑象阶乘递归的放法统计。只是多余且麻烦。
前提是不能通过子shell递归.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-23 21:11:04 | 显示全部楼层
Post by zswlb9999;2039248
楼主:
你的问题并不复杂。我看了你介绍的文章。其实,按全局变量的哪一个例子就可以了。
http://www.ibm.com/developerworks/cn/linux/l-cn-bashrecur/
步骤
1)
取起始目录下的文件,如是普通文件即统计(全局变量),如是目录,放入数组中(使用局部变量)。
2)
递归遍历目录数组
3)结果在全局变量中,不需通过return返回。

http://www.ibm.com/developerworks/cn/linux/l-cn-bashrecur/
文章中全局变量的例子的例子8第15行的return  $rtn不是实质性的东西。
所以,这只是一个递归遍历目录的问题。
当然,你可以考虑象阶乘递归的放法统计。只是多余且麻烦。
前提是不能通过子shell递归.


在0.0.1版本中我就是想通过全局的数组来存储对应的结果的,但是在递归返回值时,出现了问题,今天发现问题所在了,就是出现在“/bin/ls $Path | while read”这里的,我换成for循环递归返回值就不存在问题(详见0.0.3版中加粗部分代码),奇怪?不解?
回复 支持 反对

使用道具 举报

发表于 2009-10-23 21:42:23 | 显示全部楼层
[QUOTE=eeslook;2039360]在0.0.1版本中我就是想通过全局的数组来存储对应的结果的,但是在递归返回值时,出现了问题,今天发现问题所在了,就是出现在“/bin/ls $Path | while read”这里的,我换成for循环递归返回值就不存在问题(详见0.0.3版中加粗部分代码),奇怪?不解?[/QUOTE]
问题可能在“|”,它是在子shell运行的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-23 21:55:20 | 显示全部楼层
|
管道是在子shell的?!
明白了!谢谢!现在基本搞定了!呵呵~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表