1
0
mirror of https://github.com/koalaman/shellcheck.git synced 2025-03-12 12:35:25 -07:00

Created SC1063 (markdown)

Vidar Holen 2022-10-19 20:40:44 -07:00
parent ff80970a83
commit 45e7d232c6

42
SC1063.md Normal file

@ -0,0 +1,42 @@
## You need a line feed or semicolon before the 'do'.
### Problematic code:
```sh
for file in * do
echo "$file"
done
```
### Correct code:
```sh
for file in *; do
echo "$file"
done
# or
for file in *
do
echo "$file"
done
```
### Rationale:
ShellCheck found a `do` on the same line as a loop, but `do` only starts a loop block at the start of a line/statement. Make the `do` the start of a new line/statement by inserting a linefeed or semicolon in front of it.
### Exceptions:
If you wanted to treat `do` as a literal string, you can quote it to make this clear to ShellCheck and humans:
```
for f in "for" "do" "done"
do
echo "Shell keywords include: $f"
done
```
### Related resources:
* Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!