![`[[ $a -lt 2 ]]` 和 `(( $a < 2 ))` 之間的區別](https://rvso.com/image/95775/%60%5B%5B%20%24a%20-lt%202%20%5D%5D%60%20%E5%92%8C%20%60((%20%24a%20%3C%202%20))%60%20%E4%B9%8B%E9%96%93%E7%9A%84%E5%8D%80%E5%88%A5.png)
[[ $a -lt 2 ]]
使用和之間有什麼顯著差異嗎(( $a < 2 ))
?
例如,其中一個是否比另一個更快或更符合 POSIX?
答案1
兩者都不相容於 POSIX。在 POSIX shell 中,您可以使用命令[ "$a" -lt 2 ]
或表達 $(( a < 2 ))
。
在 中bash
,前者只是支援所[
支援的條件表達式超集的條件命令,而後者是一個獨立命令,如果所包含的算術表達式非零,則以狀態 0 退出,否則為 1。除了可讀性之外,如果使用得當,兩者之間沒有顯著差異。