diff --git a/SC1089.md b/SC1089.md new file mode 100644 index 0000000..a2a0dcc --- /dev/null +++ b/SC1089.md @@ -0,0 +1,34 @@ +## Parsing stopped here. Is this keyword correctly matched up? + +### Problematic code: + + if true + then + echo hello + fi + fi + +### Correct code: + + if true + then + echo hello + fi + +### Rationale: + +This error is typically seen when there are too many `fi`, `done` or `esac`s, or when there's a `do` or `then` without a corresponding `while`, `for` or `if`. This is often due to deleting a loop or conditional statement but not its terminator. + +In some cases, it can even be caused by bad quoting: + + var="foo + if [[ $var = "bar ] + then + echo true + fi + +In this case, the `if` ends up inside the double quotes, leaving the `then` dangling. + +### Exceptions: + +None. \ No newline at end of file