再帰関数を使用してすべてのディレクトリとサブディレクトリを印刷しようとしますが、最初のディレクトリのみを取得します。助けが必要ですか?
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 .
現在のディレクトリの下にあるディレクトリを繰り返し印刷するか、移動する他のディレクトリへのパスを指定するには、それを実行します。