I have read of the special variables used in a script $@ and $*.As far as I understand, the arguments used while executing the script are stored into two special variables, once all arguments into $@ and once all arguments into $*, this way they can be accessed inside the script.I do not understand why there must be two special variables for the same set of arguments. What is the difference, when is the one and when the other special variable used ? 
What is the purpose of having two variables ($@,$*) to transmit the arguments of a command into a script?
shell script;command line;scripting