Skip to content
Vidar Holen edited this page Oct 4, 2015 · 2 revisions

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 esacs, 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.

ShellCheck

Each individual ShellCheck warning has its own wiki page like SC1000. Use GitHub Wiki's "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally