トラバーサルが機能しない理由を見つけようとしています。「ディレクトリに含まれる」と書かれているコードのポイントまで問題を切り分け、次に関数に渡されたものを特定したと思います。関数には、エコーするすべての新しいファイル パスを含む配列が渡されますが、何らかの理由で最初のものしか受信していません。配列を間違って渡していますか、それとも何か他のものでしょうか?
#!/bin/bash
traverse(){
directory=$1
for x in ${directory[@]}; do
echo "directory contains: " ${directory[@]}
temp=(`ls $x`)
new_temp=( )
for y in ${temp[@]}; do
echo $x/$y
new_temp=(${new_temp[@]} $x/$y)
done
done
((depth--))
if [ $depth -gt 0 ]; then
traverse $new_temp
fi
}