我试图使用递归函数打印所有目录和子目录,但我只得到第一个目录。有什么帮助吗?
counter(){
list=`ls $1`
if [ -z "$(ls $1)" ]
then
exit 0
fi
echo $list
for file in $list
do
if [ -d $file ]
then
echo $file
counter ./$file
fi
done
}
counter $1
答案1
您可以使用与此类似的东西:
#!/bin/bash
counter(){
for file in "$1"/*
do
if [ -d "$file" ]
then
echo "$file"
counter "$file"
fi
done
}
counter "$1"
运行它以./script.sh .
递归打印当前目录下的目录或给出要遍历的其他目录的路径。