Contar archivos y directorios usando shell script

Estoy aprendiendo bash scripting y he escrito un script para contar los archivos y directorios en el directorio que se proporciona como argumento. Lo tengo funcionando de una manera que me parece extraña y me pregunto si hay una forma más sencilla de hacerlo.

He comentado el código que funcionará, pero lo dejé como una comparación. Estoy tratando de obtener elfor-loop trabajando, en lugar de usarif declaraciones dentro de él para detectar si un elemento en la ubicación dada es un archivo o un directorio.

Editar: ¡Acabo de descubrir que el código comentado cuenta todos los archivos y directorios en los subdirectorios de la ubicación dada también! ¿Hay alguna forma de evitar esto y solo contar los archivos y directorios de la ubicación dada?

#!/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

Por alguna razón la salida de lafor-loop, no importa dónde apunte la ubicación, siempre devuelve:

File count: 0 , Directory count: 1

Respuestas a la pregunta(5)

Su respuesta a la pregunta