Comparing strings bash

Why is it better to use [[.....]] than [.......] when comparing strings in bash ? I thought [[....]] was just for numerical comparisons ?
Who is Participating?
woolmilkporcConnect With a Mentor Commented:
You can use double or single brackets for string comparisons as well as for arithmetic ones.

Double brackets have some advantages:

- You can use && and || instead of -a (and) resp. -o (or)
- You don't need as much quoting with double brackets as you do with singles, particularly the doubles will work if a nonquoted variable to be tested is empty or contains spaces.
- There is a regular expression comparison operator ( =~ )
- You don't have to escape the parentheses used for expression grouping (no longer \( ... \) )
- You don't have to escape < and < (no longer \< and \>)
(Note: ksh does not have "<" or ">" for strings inside single brackets at all!)

All the above is due to the fact that "[" as well as its equivalent "test" are shell builtins, whereas "[[" is a shell reserved word (keyword) on ist own, just like "if" or "while"
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.