Есть ли существенная разница между использованием [[ $a -lt 2 ]]
и (( $a < 2 ))
?
Например, один из них более быстрый или более совместимый с POSIX, чем другой?
Также не совместим с POSIX. В оболочке POSIX вы можете использовать команду [ "$a" -lt 2 ]
или выражение $(( a < 2 ))
.
В bash
первая – это условная команда, поддерживающая надмножество условных выражений, которая [
поддерживает, а вторая является автономной командой, которая выходит со статусом 0, если закрытое арифметическое выражение отличное от нуля или 1 в противном случае. Помимо читаемости, при правильном использовании нет существенной разницы между ними.