やっぱり set が一番現実的だろう。
set --
set -- "$@" "$a"
set -- "$@" "$b"
って感じで。