Interview Scripting (Bash, Groovy)

What is the difference between -eq and = in test conditions? [Basic]

Answer

-eq is for numeric equality in test expressions, while = compares strings. For numbers, I normally use (( a == b )); for strings, I use [[ $a == $b ]].

Technical explanation

Using = for numbers performs string comparison, which may not match numeric intent in more complex comparisons.

Operators such as -lt, -le, -gt, and -ge are numeric test operators for [ ] and [[ ]].

Inside (( )), use C-style operators: ==, !=, <, <=, >, >=.

Hands-on example

a=10b=10[[ "$a" = "$b" ]] && echo "same string"[[ "$a" -eq "$b" ]] && echo "same number"(( a == b )) && echo "same number using arithmetic context

Preparing for an interview?

Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.

More Scripting (Bash, Groovy) interview questions

← All Scripting (Bash, Groovy) questions