#!/bin/bash
# sh ./count_chars.sh hello
#5
#sh ./count_chars.sh "for every"
#9
# sh ./count_chars.sh e "for every"
#2

# you can also count shars in some short files like this
# but this is not dependable and slow
#sh ./count_chars.sh "$(cat ./Notes)"

case $1 in
	""|"-h"|"--help") echo ${0##/*}" Usage:" ;
	echo "  Count all characters in STRING:"
	echo "${0##/} STRING" ;
	echo "  Count only CHAR characters in STRING:"
	echo "${0##/} CHAR STRING" ;
	exit ;;
esac

if [[ $2 ]] ; then
 SEP=$1
 PARSESTRING=$2
elif [[ $1 ]] ; then
 PARSESTRING=$1
fi

COUNT=0

while [[ $PARSESTRING != "" ]] ; do
	FC=${PARSESTRING:0:1}
	#echo $FC
	PARSESTRING="${PARSESTRING#${FC}*}"
	#echo $PARSESTRING
	if [[ $SEP ]] ; then
		if [[ $SEP = $FC ]] ; then
		#COUNT=$(( $COUNT + 1 ))
		(( COUNT++ ))
		fi
	else
	 # COUNT=$(( $COUNT + 1 ))
	 (( COUNT++ ))
	fi
	# echo $COUNT
done

echo $COUNT