if true then echo hello fi fi
if true then echo hello fi
This error is typically seen when there are too many
esacs, or when there's a
then without a corresponding
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
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.