SHELL脚本 遍历文件夹下所有文件以及子文件夹
dir 要设置为局部变量 如果设置为全局变量 在func递归时传入的参数 会改变 dir的值,将导致之后的文件目录错误(为更改后的dir值)
当前目录情况:
执行完shell后:
附上代码:
#!/bin/bash
func (){
local dir="$1" #local局部变量标识符
for f in `ls $1`
do
if [ -f "$dir/$f" ] # $dir/$f 保障路径正确
then
echo "$dir/$f 是文件"
elif [ -d "$dir/$f" ]
then
echo "$dir/$f是目录"
func "$dir/$f" #如果是目录再次进行遍历
else
echo "$dir/$f未知"
fi
done
}
func /root/test # func 的第一个参数也就是$1
如有不对,感谢指出。
本文转载自: https://blog.csdn.net/weixin_42141616/article/details/128514081
版权归原作者 yuahao 所有, 如有侵权,请联系我们删除。
版权归原作者 yuahao 所有, 如有侵权,请联系我们删除。