Skip to content
Turiok edited this page Feb 16, 2025 · 7 revisions

-eq is for integer comparisons. Use = instead.

Note: This warning seems replace by SC2170 or SC2309. Removed in V0.4.2 - 2016-01-10

Problematic code:

[[ $foo -eq "Y" ]]

Correct code:

[[ $foo = "Y" ]]

Rationale:

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.

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