Check $# before trying to shift off $@

In ZSH, if $@ is empty, a warning is issued when trying to
use `shift`. For instance:

    zsh% shift
    shift: shift count must be <= $#

The fix is simple, you just check $# beforehand and no
warning is issued:

    zsh% [[ $# > 0 ]] && shift