recursiveprint() {
#FILES_COUNT=0
cd $1
for d in *; do
if [ -d "$d" ]; then
(recursiveprint "$d")
fi
if [ -f "$d" ]; then
file_name=$(basename "$d")
((FILES_COUNT++))
clear
echo "$file_name"
echo "total count = $FILES_COUNT"
fi
done
}
recursiveprint ${START_DIR}
Run Code Online (Sandbox Code Playgroud)
问题是,一旦它通过一个文件夹,它会在迭代另一个文件夹之前将计数设置为零。总共,我在不同的文件夹中有 30 个文件,计数最终为 6,即它遍历的最后一个文件夹中的文件数。有关如何解决此问题的任何提示?