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}" }