Remove element from end of list and store in varname
USAGE: pop_end arrayname varname:var
pop_end() { local arrayname=${1:?Array name required} varname=${2:-var} n
Copy the array, $arrayname, to local array
eval "array=( \"\${$arrayname[@]}\" )" n=${#array[@]}
Check that there is at least one element in the array
# [ $n -lt 1 ] && return 1 (( $n )) || return 1
Store last element in $varname
printf -v "$varname" "${array[n-1]}" unset array[n-1]
Copy array back to $arrayname
eval "$arrayname=( \"\${array[@]}\" )" }