Pattern: Missing use of "$@"
to prevent whitespace problems
Issue: -
$*
, unquoted, is subject to word splitting and globbing.
Let's say you have three arguments: baz
, foo bar
and *
"$@"
will expand into exactly that: baz
, foo bar
and *
$*
will expand into multiple other arguments: baz
, foo
, bar
, file.txt
and otherfile.jpg
Since the latter is rarely expected or desired, ShellCheck warns about it.
Example of incorrect code:
cp $* ~/dir
Example of correct code:
cp "$@" ~/dir