IF文をBashスクリプトで書く方法

コマンド、構文、および例

条件文の一種であるif文を使用すると、指定した条件に応じて異なるアクションを実行できます。 それは効果的にシステムに決定を下す能力を与えます。

最も簡単なif文の例は、次のようになります。

count = 5の場合は[$ count == 5]、それからecho "$ count" fi

この例では、変数 "count"を使用してif文の一部として使用される条件を指定します。 if文が実行される前に、変数 "count"に値 "5"が割り当てられます。 if文は、 "count"の値が "5"かどうかをチェックします。 その場合、キーワード "then"と "fi"の間のステートメントが実行され、そうでない場合は、ifステートメントに続くステートメントが実行されます。 キーワード「fi」は、「if」が後ろに綴られています。 bashスクリプト言語は、このようなif文やcase文のような複雑な式の終わりをマークするためにこの規約を使います。

"echo"ステートメントは、引数 "count"の値をターミナルウィンドウに表示します。 if文のキーワード間にコードをインデントすると読みやすくなりますが、必ずしも必要ではありません。

条件が真でない場合にのみコードを実行する必要がある場合は、次の例のようにif文にキーワード "else"を使用できます。

count = 5の場合は「$ count == 5」、それ以外の場合は「$ count」echo else「count is not 5」fi

条件 "$ count == 5"が真の場合、システムは変数 "count"の値を出力し、それ以外の場合は "count is not 5"という文字列を出力します。

複数の条件を区別したい場合は、この例のように "else if"から派生したキーワード "elif"を使用できます。

[$ count == 5] then echo "count is 5" elif [$ count == 6] then "count is six" echo "no above the above" fi

"count"が "5"の場合、 "count is five"が表示されます。 "count"が "5"ではなく "6"であれば、 "count is six"と表示されます。 「5」でも「6」でもない場合、システムは「上記のどれも」印刷しません。

あなたが推測しているように、あなたはいくつでも "elif"節を持つことができます。 複数の "elif"条件の例は次のようになります。

[$ count == 5] then echo "count is five"エリフ[$ count == 6]エコー "count is six"エリフ[$ count == 7] echo "count is seven" elif [$ count = = 8] then echo "count is eight" elif [$ count == 9] echo "count is nine" else echo "no above the above" fi

このようなステートメントを複数の条件で書くよりコンパクトな方法が、 ケースメソッドです。 複数の "elif"節を持つif文と同じように機能しますが、より簡潔です。 例えば、上記のコードは次のように "case"ステートメントで書き直すことができます:

大文字小文字の "$ count" 5)echo "count is five" ;; 6)エコー "カウントは6です" ;; 7)エコー "カウントは7です" ;; 8)エコー "カウントは8" ;; 9)エコー "カウントは9です" ;; *)echo "上記のどれも" esac

if文は、この例のようにfor-loopsまたはwhile-loopよく使用されます

count = 1 done = 0 [$ count -le 9]がsleepしている間1((count ++))[$ count == 5] then continue fi echo "$ count" done echo終了しました

if文をネストすることもできます。 最も単純なネストされたif文は、if ... then ... else ... if ... then ... fi ... fiの形式です。 ただし、if文は任意の複雑さでネストすることができます。

コマンド行から渡されたパラメーターを処理するために条件を使用する方法を示すbashスクリプトに引数を渡す方法も参照してください。

bashシェルには、 for-loopswhile-loop算術式などの他のプログラミング構造が用意されています