mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 19:29:44 +08:00
Updated SC1010 (markdown)
@@ -2,16 +2,22 @@
|
|||||||
|
|
||||||
### Problematic code:
|
### Problematic code:
|
||||||
|
|
||||||
|
```
|
||||||
for f in *; do echo "$f" done
|
for f in *; do echo "$f" done
|
||||||
|
```
|
||||||
|
|
||||||
### Correct code:
|
### Correct code:
|
||||||
|
|
||||||
|
```
|
||||||
for f in *; do echo "$f"; done
|
for f in *; do echo "$f"; done
|
||||||
|
```
|
||||||
|
|
||||||
### Rationale:
|
### Rationale:
|
||||||
|
|
||||||
`done` only works as a keyword when it's the first token of the command. If added after a command, it will just be the literal word "done".
|
`done` only works as a keyword when it's the first token of the command. If added after a command, it will just be the literal word "done".
|
||||||
|
|
||||||
|
This is also true for other keywords like `then`.
|
||||||
|
|
||||||
### Exceptions
|
### Exceptions
|
||||||
|
|
||||||
If you're intentionally using `done` as a literal, you can quote it to make this clear to shellcheck (and also human readers), e.g. instead of `echo Task is done`, use `echo "Task is done"`. This makes no difference to the shell, but it will silence this warning.
|
If you're intentionally using `done` as a literal, you can quote it to make this clear to shellcheck (and also human readers), e.g. instead of `echo Task is done`, use `echo "Task is done"`. This makes no difference to the shell, but it will silence this warning.
|
||||||
|
Reference in New Issue
Block a user