シェルスクリプトでif-elseを使用する方法は?
シェルスクリプトの配列に関する前回のチュートリアルから進んで、シェルスクリプトでif-elseをどのように使用できるかを理解しましょう。
条件付きプログラミングは、プログラミング言語の重要な部分です。なぜなら、プログラム内のすべての文を実行することは、大抵の場合、望ましくありません。
そして、文を条件付きで実行する方法が必要です。シェルスクリプトのif-else文はまさにこの状況に役立ちます。
シェルスクリプトの条件
条件プログラミングの最も重要な部分の一つは、if-else文です。if-else文は、コード内で反復的な条件文を実行することができます。
シェルスクリプトで条件を評価し、その結果に基づいて2つ以上の文のセットの中から1つを実行する場合には、if-elseを使用します。
これによって、私達は条件式が評価する結果に対して、選択肢を選ぶことが本質的に可能になります。
シェルスクリプトのif-elseはどのように動作しますか?
今、どの分野に属しているかに関わらず、プログラマーにとってif-else関数が何であるか、なぜ重要かがわかりました。シェルスクリプトのif-elseを理解するためには、条件付き関数の動作を細分化する必要があります。
条件分岐のブロックの文法を見てみましょう。
if [condition]
then
statement1
else
statement2
fi
ここでは4つのキーワード(もし、ならば、そうでなければ、終わり)があります。
-
- もしキーワード「if」が条件に続く時、その条件は評価され、プロセッサが実行する文を決定します。
-
- もし条件がTRUEに評価されれば、プロセッサはキーワード「then」の後に続く文(文1)を実行します。構文では「statement1」として示されています。
- もし条件がFALSEに評価される場合、プロセッサはキーワード「else」の後に続く文(文2)を実行します。関数構文では「statement2」と表されます。
日本語で以下の文を言い換えます。ただし、1つのオプションで構いません。
Cプログラミングと同様に、シェルスクリプトも大文字と小文字を区別するということを心に留めておく必要があります。そのため、コード内のキーワードを使用する際には注意が必要です。
シェルスクリプトでif-elseを使用する方法は次の通りです:
関数の構文を見て、それを使い方を理解できると思い込むのは簡単です。しかし、いつも関数を例を通して理解する方が良い選択です。なぜなら、例は関数の異なる要素が果たす役割を理解するのに役立つからです。
以下には、このツールの使用方法についてより良く理解するための、シェルスクリプトでのif-elseの便利な例がいくつかあります。
Command | Description |
&& | Logical AND |
$0 | Argument 0 i.e. the command that’s used to run the script |
$1 | First argument (change number to access further arguments) |
-eq | Equality check |
-ne | Inequality check |
-lt | Less Than |
-le | Less Than or Equal |
-gt | Greater Than |
-ge | Greater Than or Equal |
2つの数字が等しいかどうかをチェックするために、if-elseを使用する。
シェルスクリプトのif-elseのような関数の動作を理解する際は、シンプルに始めるのが良いです。ここでは、変数aとbを初期化し、その後、if-else関数を使用して2つの変数が等しいかどうかをチェックします。このタスクのためのBashスクリプトは次のようになります。
#!/bin/bash
m=1
n=2
if [ $n -eq $m ]
then
echo "Both variables are the same"
else
echo "Both variables are different"
fi
出力:
Both variables are different
2. 2つの値を比較するためにif-elseを使用する。
シェルスクリプトでのif-elseの一般的な使用法は、2つの値を比較するためです。変数と他の変数または固定値を比較することは、さまざまなケースでさまざまなプログラマによって使用されます。
この例を考えるために、私たちは2つの変数を初期化し、if-else関数を使用して、もう一方よりも大きい変数を見つけます。
#!/bin/bash
a=2
b=7
if [ $a -ge $b ]
then
echo "The variable 'a' is greater than the variable 'b'."
else
echo "The variable 'b' is greater than the variable 'a'."
fi
出力:
The variable 'b' is greater than the variable 'a'.
3. 数字が偶数かどうかをチェックするためにif-elseを使用する。
時々、私たちは偶数と奇数を扱い、区別する必要がある状況に遭遇することがあります。これは、シェルスクリプトでモジュラス演算子の助けを借りて、if-elseを使って行うことができます。
剰余演算子は、数を除数で割り、余りを返します。
私たちが知っているように、すべての偶数は2の倍数ですので、以下のシェルスクリプトを使用して、数が偶数か奇数かをチェックすることができます。
#!/bin/bash
n=10
if [ $((n%2))==0 ]
then
echo "The number is even."
else
echo "The number is odd."
fi
以下の文を日本語で自然な言い回しで言い換えてください。1つの選択肢で構いません。
出力:
The number is even
ご覧の通り、条件の一部を二重の角括弧で囲んでいます。それは、条件の確認の前に剰余演算を実行する必要があるためです。
また、二重括弧で囲むことによって、C言語のような文を実行し、Bashスクリプト内で一部のCスタイルのコマンドを処理することができます。
4. もし-それ以外を使って簡単なパスワードプロンプトを作成する
if-else関数はその多機能性と応用範囲で知られています。この例では、シェルスクリプトでif-elseを使用してパスワードのプロンプトのインタフェースを作成します。
これをするために、ユーザーにパスワードを入力してもらい、変数”pass”に保存します。
もし事前に定義されたパスワードと一致した場合、この例では「password」となりますが、ユーザーには「パスワードは正しいです」という結果が返されます。
そうでなければ、シェルスクリプトはユーザーにパスワードが間違っていることを伝え、もう一度試すように求めます。
#!/bin/bash
echo "Enter password"
read pass
if [ $pass="password" ]
then
echo "The password is correct."
else
echo "The password is incorrect, try again."
fi
結論 –
結論
シェルスクリプトのif-elseの機能は、シェルプログラマーにとって重要なアセットです。事前に定義された条件に基づいて一連のステートメントを実行する必要がある場合には、最適なツールです。
if-elseブロックは条件付きプログラミングの中で最も重要な部分の一つです。特定の文の実行を制御することで、コードの効率を向上させるだけでなく、特定のケースには不必要な文を実行することでプロセッサが浪費してしまうかもしれない貴重な時間を節約することができます。
このチュートリアルがif-elseの使い方を理解するのに役立ったことを願っています。もし質問やフィードバック、提案があれば、コメント欄で気軽にお知らせください。