In any POSIX shell,
set -- "$@" "value"
value to the end of the list of positional parameters (it would actually replace the list with a new longer list), and
set -- "value" "$@"
would add it in the beginning (and would technically be the reverse of a
shift removes the first element). This holds true for
-- is used to protect the following values from accidentally being interpreted as options, in case they start with
The special variable
$@ is almost exclusively used as
"$@" as this would expand to the value of each positional parameter individually quoted. The expression
"$@ somethingelse" would expand to the list of individually quoted positional parameters, with
<space>somethingelse appended to the last of them.
To use the values of the positional parameters as a single string delimited by spaces (or whatever the first character of
$IFS may be), use
"$* somethingelse" is well defined as a single string). This is however not what you want to do in this instance as it would collapse your list of values to one single value.