`[[ $a -lt 2 ]]` と `(( $a < 2 ))` の違い

`[[ $a -lt 2 ]]` と `(( $a < 2 ))` の違い

[[ $a -lt 2 ]]との使用には大きな違いがありますか(( $a < 2 ))?

たとえば、どちらかが他方よりも高速であるか、または POSIX に準拠しているでしょうか?

答え1

どちらもPOSIX互換ではありません。POSIXシェルでは、コマンド[ "$a" -lt 2 ]または表現 $(( a < 2 ))

ではbash、前者は が[サポートする条件式のスーパーセットをサポートする条件コマンドにすぎず、後者は、囲まれた算術式がゼロ以外の場合はステータス 0 で終了し、それ以外の場合はステータス 1 で終了するスタンドアロン コマンドです。読みやすさ以外、適切に使用した場合、この 2 つに大きな違いはありません。

関連情報