Created SC2068 (markdown)

koalaman
2014-03-02 11:04:53 -08:00
parent 1daaf3cc47
commit 1ebd1313dc

25
SC2068.md Normal file

@@ -0,0 +1,25 @@
## Add double quotes around ${@}, otherwise it's just like $* and breaks on spaces.
### Problematic code:
cp $@ ~/dir
### Correct code:
cp "$@" ~/dir
### Rationale:
Double quotes around `$@` prevents globbing and word splitting while still expanding to multiple separate arguments.
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.