SC1046 – ShellCheck Wiki

See this page on GitHub

Sitemap


Couldn't find fi for this if.

Problematic code:

if true
then
  echo "True"
done

Correct code:

if true
then
  echo "True"
fi

Rationale:

ShellCheck has found an if statement that does not appear to have a matching terminating fi.

This could be because it's missing entirely, or because the if statement was incorrectly terminated by a mismatched done, esac, ) or similar. A companion warning SC1047 is emitted at the point where ShellCheck expected the fi.

Check that the if statement is completely and correctly terminated.

Exceptions:

None


ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.