RosettaCodeData/Task/Arrays/UNIX-Shell/arrays-8.sh

24 lines
382 B
Bash

# pop ARRAY -- pop the last item on ARRAY and output it
pop() {
local var=${1:?'Missing array name'}
local x ; eval "x=\${#$var[*]}"
if [[ $x > 0 ]]; then
local val ; eval "val=\"\${$var[$((--x))]}\""
unset $var[$x]
else
echo 1>&2 "No items in $var" ; exit 1
fi
echo "$val"
}
alist=(a b c)
pop alist
a
pop alist
b
pop alist
c
pop alist
No items in alist