Unterschied zwischen `[[ $a -lt 2 ]]` und `(( $a < 2 ))`

Unterschied zwischen `[[ $a -lt 2 ]]` und `(( $a < 2 ))`

Gibt es einen signifikanten Unterschied zwischen der Verwendung von [[ $a -lt 2 ]]und (( $a < 2 ))?

Ist einer von ihnen beispielsweise schneller oder POSIX-kompatibler als der andere?

Antwort1

Beides ist nicht POSIX-kompatibel. In einer POSIX-Shell können Sie den Befehl [ "$a" -lt 2 ]oder denAusdruck $(( a < 2 )).

In bashist ersteres einfach der bedingte Befehl, der eine Obermenge der [unterstützten bedingten Ausdrücke unterstützt, und letzteres ist ein eigenständiger Befehl, der mit dem Status 0 beendet wird, wenn der eingeschlossene arithmetische Ausdruck ungleich Null ist, und andernfalls mit 1. Abgesehen von der Lesbarkeit gibt es bei richtiger Verwendung keinen signifikanten Unterschied zwischen den beiden.

verwandte Informationen