`[[ $a -lt 2 ]]` 和 `(( $a < 2 ))` 之间的区别

`[[ $a -lt 2 ]]` 和 `(( $a < 2 ))` 之间的区别

[[ $a -lt 2 ]]使用和之间有什么显着差异吗(( $a < 2 ))

例如,其中一个是否比另一个更快或更符合 POSIX?

答案1

两者都不兼容 POSIX。在 POSIX shell 中,您可以使用命令[ "$a" -lt 2 ]表达 $(( a < 2 ))

在 中bash,前者只是支持所[支持的条件表达式超集的条件命令,而后者是一个独立命令,如果所包含的算术表达式非零,则以状态 0 退出,否则为 1。除了可读性外,如果使用得当,两者之间没有显着差异。

相关内容