Originally Posted by man bash
@ Expands to the positional parameters, starting from one. When the
expansion occurs within double quotes, each parameter expands to a
separate word. That is, "$@" is equivalent to "$1" "$2" ... If
the double-quoted expansion occurs within a word, the expansion of
the first parameter is joined with the beginning part of the orig-
inal word, and the expansion of the last parameter is joined with
the last part of the original word. When there are no positional
parameters, "$@" and $@ expand to nothing (i.e., they are
It means each argument supplied to the script from the command line:
pwc101@linux:> ./myscript argument_1 argument_2
$@ represents argument_1 and argument_2 in that example, which can be individually referenced as $1 and $2.
for more info.