Parece uma abordagem funky de argumentos para mim, mas:
[kbrandt@kbrandt: ~/scrap] cat args
args=("$@")
echo ${args[0]}
echo ${args[@]:1:2}
echo ${args[@]:0:$#}
[kbrandt@kbrandt: ~/scrap] bash args foo bar baz biz
foo
bar baz
foo bar baz biz
Eu recomendo que você confira a Resposta do FAQ sobre os argumentos da linha de comando (que basicamente diz getopts ou loop / case / shift ).