Function: shove

Add element to end of array and remove first element

USAGE: rshove arrayname val

rshove()
{      
  local arrayname=${1:?} val=$2 max=$3 array n
  

Copy the array, $arrayname, to local array

  eval "array=( \"\${$arrayname[@]}\" )"
  n=${#array[@]}
  

Add $val to end of array

  array=( "${array[@]}" "$val" )
  

Remove first element of array

  unset array[0]
  

Copy array back to $arrayname

  eval "$arrayname=( \"\${array[@]}\" )"
}
shove() #@ Add element to beginning of array and remove last element
{       #@ USAGE: shove arrayname val
  local arrayname=${1:?} val=$2 max=$3 array n
  

Copy the array, $arrayname, to local array

  eval "array=( \"\${$arrayname[@]}\" )"
  n=${#array[@]}
  

Add $val to beginning of array

  array=( "$val" "${array[@]}" )
  

Remove last element of array

  unset array[n]
  

Copy array back to $arrayname

  eval "$arrayname=( \"\${array[@]}\" )"
}