diff --git a/SC2048.md b/SC2048.md new file mode 100644 index 0000000..e955c88 --- /dev/null +++ b/SC2048.md @@ -0,0 +1,25 @@ +## 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. + +### Contraindications + +None. \ No newline at end of file