今天总结一下关于linux shell里的递归循环的问题
起因是一个群友在群里的提问问的是怎么把有或多或少空目录的几个文件移动走的问题归根结底就是一个递归循环的问题如果之前接触过c语言之类的编程语言、那么这个很好理解就是通过函数来不断的自己调用自己这种方法有一个很大的弊端就是需要很多资源比如有一种进程调用的 fork ××× 就是自调用搞的接下来我就贴一下代码然后简单的讲解一下#!/bin/sh. /etc/plus.liba(){ for file in `ls $1` do if [ -d $1"/"$file ];then a $1"/"$file else echo $1"/"$file fi done}a /tmp
那么这个就是整个的代码
通过一个大的循环然后判断是目录还是文件如果是一个文件的话、就把它echo出来、当然这个脚本没有功能、如果是想要做一些处理的话、可以自行处理如果不是一个文件而是一个目录的话、那就调用自己重新循环一遍当前目录root@lp:/tmp/tmp# sh a.sh /tmp/a/01/tmp/a/1/02/tmp/a/1/asdasf/ashfakjsgba/tmp/a/aaa/tmp/b/03/tmp/tmp/a.sh
就总结这么多,以后有机会再补充