Function: shortest

Find the shortest element (fewest characters)

USAGE: shortest arrayname var:shortest

shortest()
{         
  local arrayname=${1:?Array name required} varname=${2:-shortest}
  local IFS= string shortest e
  

Copy the array, $arrayname, to local array

  eval "array=( \"\${$arrayname[@]}\" )"
  shortest=${array[0]}
  for e in "${array[@]}"
  do
    [ ${#e} -lt ${#longest} ] && shortest=$e
  done
  [ "$varname" != shortest ] && eval "$varname=\$shortest}"
}