« Back to Index

Zsh and Bash Array Shift (remove first item from the Array)

View original Gist on GitHub

bash-array-shift.sh

array=(foo, bar, baz)
echo ${array[@]} # => foo, bar, baz

array=("${array[@]:1}")
echo ${array[@]} # => bar, baz

array=("${array[@]:1}")
echo ${array[@]} # => baz

zsh-array-shift.sh

array=(foo, bar, baz)
echo $array # => foo, bar, baz

array=("${(@)array:1}")
echo $array # => bar, baz

array=("${(@)array:1}")
echo $array # => baz

# UPDATE: this works as well and is less confusing syntax
array=(${array:1})