![Unterschied zwischen `[[ $a -lt 2 ]]` und `(( $a < 2 ))`](https://rvso.com/image/95775/Unterschied%20zwischen%20%60%5B%5B%20%24a%20-lt%202%20%5D%5D%60%20und%20%60((%20%24a%20%3C%202%20))%60.png)
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 bash
ist 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.