SC2130 – ShellCheck Wiki

See this page on GitHub


-eq is for integer comparisons. Use = instead.

Problematic code:

[[ $foo -eq "Y" ]]

Correct code:

[[ $foo = "Y" ]]


Shells have two sets of comparison operators: for integers (-eq, -gt, ...) and strings (=, >, ...). ShellCheck has noticed that you're using an integer comparison with string data.

If you are in fact comparing integers, double check your parameters. Certain mistakes like $$foo or ${bar}} can introduce non-numeric characters into otherwise numeric arguments.



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