bash - testコマンド

testコマンドは制御文の条件に使われます。
与えられた条件式expressionが真なら終了コード0を、偽なら終了コード1を返します。
また、 [ ] はtestコマンドの別名です。 [ ]の前後にはスペースが必要。

test expression
[ espression ]

数値を比較するオプション

-lt 左項が右項より小さい場合真(less then)
-le               小さいか等しい場合真(less then equal)
-gt               大きい場合真(greater then)
-ge               大きいか等しい場合真(greater then equal)
-ep               等しい場合真(equal)
-ne               等しくない場合真(not equal)

if [ $1 -lt $2 ]; then #

文字列を比較するオプション
文字列の比較は特殊文字を含むことが多いので""で囲んだほうがよい

=   左項と右項が同一文字列の場合真
!=                        でない場合真
str 文字列がnullでない場合真
-n  文字列がnullでない場合真(not zero)
-z              の場合真(zero)

if [ "$1" = "$2" ]; then

ファイルに関するオプション

-d  ディレクトリなら真
-f  普通のファイルなら真
-r  読み出し可能なら真
-s  サイズが0より大きければ真
-w  書き込み可能なら真
-x  実行可能なら真

if [ -f "file1" ]; then

条件式を論理演算するオプション

-a  左項条件式と右項条件式のどちらも真の場合真(and)
-o                          どちらかが真の場合真(or)      
!   条件式の否定(not)
()  ()の中の条件式を優先する

if [ $1 -lt $2 -a \( $1 -lt $4 \) -o $2 -lt $3 ]