If you change the loop so that it prints every item it processes, you should find that "see if" is handled as a single argument.
See further UNIX Shell Quotes - a simple tutorial
As an aside, note that "$@" should be preferred over $*
Read the grymoire.com quoting tutorial from the link above. Quote characters are inherently special; you can't get literal quotes through in the shell without additional quoting or other escaping mechanisms.
thanks era, i have been through the link you provide UNIX Shell Quote
this make perfect sense, unfortunately I am in big trouble i am using an application which allows me access to the arguments i cant make changes to the original commands that are passed,
so i cant wrap them round / or '
i can just use these arguments to create scripts which i use.
The problems is some of the commands that can be passed have quotations which seem to be disappear
Doing your own parsing of the arguments is usually not a good idea. Is there a particular reason you want to loop over the arguments and collect them into a single string? If keeping quoting etc. intact is important, the "$@" construct is exactly for that, but then e.g. editing out some of the command-line arguments and passing on the rest is tricky. (Shifting off the first argument is of course always simple and straightforward.)
If i have something like ./example.sh does "this" work
If I echo "$@" then this outputs. does this work
i have tried using the shift but that's give the same problem because the $@ has already removed the quotes. Is there anyway of getting exactly what was inputted in from the above example without actually modifying the command parameter with escape characters.