Если кратко, то <code>[</code> это синоним для <code>test</code> . Обрабатывается как и любая другая команда с соответствующими ограничениями. <code>[[</code> — это расширение Bash (не совместимо с другими оболочками) и так как это внутренняя функция, то имеет несколько больше возможностей. В частности, нет необходимости заключать переменные в кавычки, можно использовать <code>&&</code> , <code>||</code> , <code><</code> и <code>></code> и есть поддержка регулярных выражений через оператор <code>=~</code> . Для подробностей смотрите <code>man bash</code> .