Skip to content
Vidar Holen edited this page Oct 4, 2015 · 3 revisions

Use "$@" (with quotes) to prevent whitespace problems.

Problematic code:

cp $* ~/dir

Correct code:

cp "$@" ~/dir

Rationale:

$*, 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.

Exceptions

None.

Clone this wiki locally