シェル言語もほとんどのプログラム言語と同様に条件判断のための if文を持って います。 if文は1つ以上の条件をテストし、その結果に基づいてプログラムの流れを 分岐させます。 if文の一般書式は次の通りです。
この文では condの位置に書かれたコマンドの終了状態(実行結果)を調べて 終了状態がゼロ(真)の場合には then節が、そうでない場合には else節が実行されます。 もし必要がなければ else節は省略することができますが、 if文の終了を表す予約語 fiは省くことができません。なお、後者の書式では elif節のネストができます。
終了状態がゼロ(真)の時に then節が実行されることは他のプログラミング言語 からすれば逆の印象を受けるかもしれません。minixでは、あるコマンドが終了 するとその終了状態(exit status)を表す数値がシステムに返されます。 これはそのプログラムが正常に実行/終了できたかどうかを示すもので、 正常に終了した場合はゼロ(真)が返されます。もし、終了状態が非ゼロ(偽) ならば何らか の原因で、例えば引数の数が適切でなかったとか、プログラムがエラーを検出したと か 等々、異常が起きたと考えられます。ですからコマンドが正常に終了した ならば then節に分岐、と考えれば受け入れやすいと思います。