Created SC2054 (markdown)

koalaman
2016-09-29 14:14:35 -07:00
parent a1a83b2482
commit fcd5a994c7

26
SC2054.md Normal file

@@ -0,0 +1,26 @@
## Use spaces, not commas, to separate array elements.
### Problematic code:
```sh
flags=("-l", "-d", "--sort=size")
ls "${flags[@]}"
```
### Correct code:
```sh
flags=("-l" "-d" "--sort=size")
ls "${flags[@]}"
```
### Rationale:
You appear to have used commas to separate array elements in an array assignment. Other languages require this, but bash instead treats the commas as literal strings.
In the problematic code, the first element is `-l,` with the trailing comma, and the executed command ends up being `ls -l, -d, --sort=size`.
In the correct code, there are no trailing commas and the command will be `ls -l -d --sort=size` as expected.
### Exceptions:
None (if you actually want a trailing comma in your strings, move it inside the quotes).