Синтаксис:
if [[ условие ]]
then
# действия, если условие истина
fi
Условия (строки):
-z <строка> # строка пуста
-n <строка> # строка не пуста
<стр1> == <стр2> # строки равны
<стр1> != <стр2> # строки не равны
Условия (числа):
-eq # равно
-ne # не равно
-lt # меньше
Двойные скобки служат для сложных выражений, где проверяется сразу несколько условий. Одинарные скобки - синоним для утилиты test, проверяющей только одно условие. Другое отличие в том, что при использовании операторов < и > в условии [[ ]] лексикографическое сравнение строк происходит в соответствии с текущей локалью, а утилита test использует ASCII порядок.
Дополнительно: секреты Bash