It might be better to reorganize your parameters. Instead of a variable number of arguments followed by a specific final argument, put the last argument first (so that it is $1), and put the variable number of arguments after that. So instead of
myshell_script a b c d
with var2 eventually being set to "d", use
var2=$1; shift
and call like
myshell_script d a b c
Now var2 will have the value the value of "d", and $@ (after the shift) will contain "a", "b", and "c".