Compter les fichiers et les répertoires en utilisant un script shell

Je suis en apprentissage de l'écriture de scripts bash et ont écrit un script pour compter les fichiers et répertoires dans le répertoire qui est fourni en argument. - Je avoir de travail d'une façon qui me semble bizarre et je me demande si il existe un moyen plus simple de le faire.

J'ai commenté le code du travail, mais elle a laissé dans une comparaison. Je suis en train d'essayer d'obtenir le for-boucle de travail, au lieu d'utiliser if les instructions à l'intérieur de détecter si un élément donné de l'emplacement d'un fichier ou d'un répertoire.

Modifier: je viens de constater que le code commenté compte tous les fichiers et répertoires dans les sous-répertoires de l'emplacement ainsi! Est-il possible de prévenir cette situation et compte le nombre de fichiers et répertoires de la ville?

#!/bin/bash

LOCATION=$1
FILECOUNT=0
DIRCOUNT=0

if [ "$#" -lt "1" ]
then
    echo "Usage: ./test2.sh <directory>"
    exit 0
fi

#DIRS=$(find $LOCATION -type d)
#FILES=$(find $LOCATION -type f)

#for d in $DIRS
#do
#   DIRCOUNT=$[$DIRCOUNT+1]
#done

#for f in $FILES
#do
#   FILECOUNT=$[$FILECOUNT+1]
#done

for item in $LOCATION
do
if [ -f "$item" ]
    then
         FILECOUNT=$[$FILECOUNT+1]
    elif [ -d "$item" ]
        then
         DIRCOUNT=$[$DIRCOUNT+1]
fi
done

echo "File count: " $FILECOUNT
echo "Directory count: " $DIRCOUNT

Pour une raison quelconque, la sortie de la foren boucle, peu importe où je l'emplacement, renvoie toujours:

File count: 0 , Directory count: 1

source d'informationauteur Alan Smith