Is there a function to return the length of a string?
The fastest way, not requiring external programs (but usable only with BASH and KornShell):
${#varname}
or for Bourne shells:
expr "$varname" : '.*'
(expr prints the number of characters matching the pattern .*, which is the length of the string.)
or:
expr length "$varname"
(BSD/GNU expr only)
This second version is not specified in POSIX, so is not portable across all platforms.
However, if $varname expands to "length", the first version will fail with BSD/GNU expr.
${#arrayname[@]}
Returns the Number of Elements in an Array.
${#arrayname[i]}
Returns the length of the Arrays Element i.