parse1() { echo "$1" shift parse2 "$@" echo "$1" } parse2() { echo "$1" shift echo "$1" } parse1 "$@" result 1 2 3 2