Разница между `[[ $a -lt 2 ]]` и `(( $a < 2 ))`

Разница между `[[ $a -lt 2 ]]` и `(( $a < 2 ))`

Есть ли существенная разница между использованием [[ $a -lt 2 ]]и (( $a < 2 ))?

Например, один из них быстрее или более совместим со стандартом POSIX, чем другой?

решение1

Ни один из них не совместим с POSIX. В оболочке POSIX вы можете использовать команду [ "$a" -lt 2 ]иливыражение $(( a < 2 )).

В bash, первая — это просто условная команда, поддерживающая надмножество условных выражений, которое [поддерживает , а вторая — это отдельная команда, которая завершается со статусом 0, если заключенное в ней арифметическое выражение не равно нулю, или 1 в противном случае. За исключением читабельности, между ними нет существенной разницы при правильном использовании.

Связанный контент