Почему он выполняет код в кавычках? Интересуют причины такого поведения.
Потому что «[[» это не команда, а синтаксическая конструкция. Для «[» так интерпретироваться не будет. А поведение для численных сравнений типа -eq в виде исполнения арифметических целочисленных вычислений более логичное, ведь при этом оно не допускает строки.
Кто бы тут еще и рассказал - в чем сыр-бор?
Т.е. что эта строчка означает?
Баш учить не буду. Просто хочется узнать в чем прикол и принять к сведению. (c)