`[[ $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。除了可讀性之外,如果使用得當,兩者之間沒有顯著差異。

相關內容