为什么我的递归函数在第二次之后没有调用自身?

时间:2019-05-17 01:54:55

标签: bash unix

我想递归确定当前目录及其所有子目录中所有文件的大小。

这是我的脚本代码:

#!/bin/bash

files=`ls`
dir="."
echo "$dir"

funct ()
{
    ls -lh $dir | head -1
    for file in $files
    do
        echo $file
        if [ -d "$file" ] 
        then
            echo "$file is directory"
            prevdir=$dir
            dir+="/$file"
            echo "$dir"
            files=`ls $dir`
            funct $files
            dir=$prevdir
        fi  
    done
}

funct $files

结果应为打印: ./ 总人数 ./备份 总人数 ./backup/newDir 总人数

,依此类推... 但它没有将“备份”和“ adir”目录中的目录视为目录。

0 个答案:

没有答案