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