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