![`[[ $a -lt 2 ]]` と `(( $a < 2 ))` の違い](https://linux33.com/image/95775/%60%5B%5B%20%24a%20-lt%202%20%5D%5D%60%20%E3%81%A8%20%60((%20%24a%20%26lt%3B%202%20))%60%20%E3%81%AE%E9%81%95%E3%81%84.png)
[[ $a -lt 2 ]]
とを使用することに大きな違いはありますか(( $a < 2 ))
?
たとえば、一方が他方よりも速いか、POSIX仕様に準拠していますか?
答え1
POSIX規格でもありません。 POSIXシェルでは、次のコマンドを使用できます[ "$a" -lt 2 ]
。表現する $(( a < 2 ))
。
bash
前者は、サポートされている条件式の上位セットをサポートする条件付きコマンドですが、後者は、含まれる算術式がゼロでない場合は状態0で[
終了し、そうでなければ1で終了するスタンドアロンコマンドです。読みやすさを除いて正しく使用すると、2つの間に大きな違いはありません。