logo

Bash スクリプト – If ステートメント

Bash はコマンド言語のインタープリターです。これは、ほとんどの GNU/ のデフォルトのコマンド インタプリタです。 Linuxシステム さまざまなオペレーティング システムで広く利用可能です。名前はの略称です ボーン・アゲイン・シェル 。スクリプトを使用すると、そうでなければ対話的に 1 つずつ実行される命令の実行が可能になります。

この記事では、bash スクリプトの if ステートメントについて説明します。



Bash If ステートメント

Bash の「if」ステートメントの基本構文は次のとおりです。

#!/bin/bash  if [ condition ]; then  # code to be executed if the condition is true fi>

説明:

  • if [ condition ]; then> : この行は if ステートメントを開始します。condition>評価される式です。条件が true の場合、then>ブロックが実行されます。
  • # code to be executed if the condition is true> : if ステートメントで指定された条件が true の場合に実行されるコード ブロックです。
  • fi> : これは if ステートメントの終わりを示します。

数値が偶数かどうかを判断する Bash スクリプト

以下は例です 脚本 数値の入力を求めるプロンプトが表示され、指定された数値が偶数かどうかがチェックされます。

Linux用のgzip

#!/usr/bin/bash
# このスクリプトは、ユーザーに数値の入力を求め、それが偶数であるかどうかを確認し、それに応じてメッセージを出力します。
# ユーザーに数字の入力を求める



echo -n 番号を入力してください:
×を読む

# 入力した数値が偶数かどうかを確認する
if [ $((x % 2)) == 0 ];それから
エコー番号は偶数です
なれ

説明:



  1. #!/usr/bin/bash> : これは、Bash インタープリターへのパスを指定するシバン行です。これは、スクリプトを Bash を使用して実行する必要があることを示します。
  2. echo -n 'Enter Number: '> : この行は、プロンプト Enter Number: を改行文字 (-n>オプション)。ユーザーが数値を入力するのを待ちます。
  3. read x> : ユーザー入力を読み取り、変数に割り当てます。x>
  4. if [ $((x % 2)) == 0 ]; then> : この行は、入力された数値の除算の余りがあるかどうかをチェックします (x>) by 2 は 0 に等しい。true の場合、数値が偶数であることを意味する。
  5. echo 'Number is Even'> : if ステートメントの条件が true の場合、この行は「Number is Even」をコンソールに出力します。

出力:

数値が偶数かどうかを判断する Bash スクリプト

数値が偶数かどうかを判断する Bash スクリプト

注記: スクリプトは、ユーザーが数値以外の値を入力する場合は処理しません。ユーザーが数値以外の値を入力すると、予期しない結果が生じる可能性があります。これに対処するために、追加の入力検証を追加することができます。

Bash の if-else ステートメント

Bash の「if-else」ステートメントの基本構文は次のとおりです。

#!/bin/bash

if [条件];それから

# 条件が真の場合に実行されるコード

それ以外

# 条件が false の場合に実行されるコード

なれ

説明:

  • if [ condition ]; then> : この行は if ステートメントを開始します。condition>評価される式です。条件が true の場合、then>ブロックが実行されます。
  • # code to be executed if the condition is true> : if ステートメントで指定された条件が true の場合に実行されるコード ブロックです。
  • else> : if ステートメントの条件が false の場合、else>ブロックが実行されます。
  • # code to be executed if the condition is false> : if ステートメントで指定された条件が false の場合に実行されるコード ブロックです。
  • fi> : これは、if-else ステートメントの終わりを示します。

Bash スクリプトで if-else ステートメントを使用してより大きな数値を見つける方法?

以下は、Bash スクリプトで if-else ステートメントを使用してより大きい数を見つける Bash スクリプトです。

#!/bin/bash
# ユーザーに x の値の入力を求めるプロンプトを表示します

echo -n x の値を入力します。
×を読む

Javaリストメソッド

if [ $x -gt 5 ];それから
echo x は 5 より大きいです
それ以外
echo x は 5 以下です
なれ

外植:

  • #!/bin/bash : この行はシバンと呼ばれ、スクリプトが Bash シェルを使用して解釈および実行される必要があることを示します。
  • # ユーザーに x の値の入力を求めるプロンプトを表示します : 次の行の目的を示すコメントです。
  • echo -n x の値を入力します。 : この行は、次の行に移動せずに、「x: の値を入力してください」というメッセージを端末に出力します。ユーザーは同じ行に値を入力します。
  • ×を読む : この行はユーザーの入力を読み取り、それを変数「x」に割り当てます。
  • if [ $x -gt 5 ];それから : これは、「x」の値が 5 より大きいかどうかをチェックする if ステートメントです。
    • $x : 変数「x」の値を表します。
    • -gt : 数値比較の文脈で「より大きい」を表します。
    • 5 : 比較される値。
  • echo x は 5 より大きいです : 前の行の条件が true の場合、この行が実行され、x が 5 より大きいことが端末に出力されます。
  • それ以外 : if ステートメントの条件が false の場合、スクリプトは else ブロックにジャンプします。
  • echo x は 5 以下です : この行は、「x」の値が 5 以下の場合に実行され、x が 5 以下であることを端末に出力します。
  • なれ : これは、if-else ブロックの終了を意味します。

出力:

if-else を使用してより大きな数を見つける

if-else を使用してより大きな数を見つける

Bash の if-elif-else ステートメント

if-elif-else>Bash のステートメントは条件分岐に使用されます。複数の条件を指定し、これらの条件の評価に基づいてコードの異なるブロックを実行できます。

Bash の「if-elif-else」ステートメントの基本構文は次のとおりです。

#!/bin/bash

if [条件1];それから
# 条件1が真の場合に実行されるコード
elif [条件2];それから
# 条件2がtrueの場合に実行されるコード
elif [条件3];それから
# 条件3が真の場合に実行されるコード
それ以外
# どの条件にも当てはまらない場合に実行されるコード
なれ

説明:

  • if [条件1];それから :これが出発点です。if-elif-else>声明。このブロック内のコードは、次の場合に実行されます。condition1>それは本当です。
  • # 条件1が真の場合に実行されるコード : このコメントを、次の場合に実行する実際のコードに置き換えます。condition1>それは本当です。
  • elif [条件2];それから : もしcondition1>false の場合、スクリプトがチェックしますcondition2>。もしcondition2>true の場合、このブロック内のコードが実行されます。
  • # 条件2がtrueの場合に実行されるコード : このコメントを、次の場合に実行する実際のコードに置き換えます。condition2>それは本当です。
  • elif [条件3];それから : 両方の場合condition1>そしてcondition2>false の場合、スクリプトがチェックしますcondition3>。もしcondition3>true の場合、このブロック内のコードが実行されます。
  • # 条件3が真の場合に実行されるコード : このコメントを、次の場合に実行する実際のコードに置き換えます。condition3>それは本当です。
  • それ以外 : 前述の条件 (条件 1、条件 2、条件 3 など) のいずれも true に該当しない場合、else>ブロックが実行されます。
  • # どの条件にも当てはまらない場合に実行されるコード : このコメントを、どの条件にも当てはまらない場合に実行する実際のコードに置き換えます。
  • なれ : これで、if-elif-else>声明。 fi という単語は逆から綴ると、Bash の条件付きブロックを閉じるために使用されます。

Bashで「if-elif-else」ステートメントを使用して数値が正、負、またはゼロであるかどうかを確認するにはどうすればよいですか?

上記の例のコードを拡張して、ゼロをチェックする条件を追加しましょう。

私のiPhoneアンドロイドを見つけてください

#!/bin/bash

# ユーザーに数字の入力を求める

echo -n 数字を入力してください:
読み取り番号

if [ $num -gt 0 ];それから
echo $num は正の数です。
elif [ $num -lt 0 ];それから
echo $num は負の数です。
それ以外
echo $num はゼロです。
なれ

説明:

  • #!/bin/bash : この行は、スクリプトが Bash シェルを使用して解釈および実行される必要があることを示すシバンです。
  • # ユーザーに数字の入力を求める : 次の行の目的を示すコメントです。
  • echo -n 数字を入力してください: : この行は、次の行に移動せずに、「数字を入力してください:」というメッセージを端末に出力します。ユーザーは同じ行に自分の番号を入力します。
  • 読み取り番号 : この行はユーザーの入力を読み取り、それを変数「num」に割り当てます。
  • if [ $num -gt 0 ];それから : これは、「num」の値が 0 より大きいかどうかをチェックする if ステートメントです。
    • $num : 変数「num」の値を表します。
    • -gt : 数値比較の文脈で「より大きい」を表します。
    • 0 : 比較される値。
  • echo $num は正の数です。 : 前の行の条件が true の場合、この行が実行され、$num は正の数として表示されます。ターミナルへ。
  • elif [ $num -lt 0 ];それから : if ステートメントの条件が false の場合、この行は「num」の値が 0 より小さいかどうかをチェックします。
    • $num : 変数「num」の値を表します。
    • -lt : 数値比較の文脈における「未満」を表します。
    • 0 : 比較される値。
  • echo $num は負の数です。 : elif ステートメントの条件が true の場合、この行が実行され、$num が負の数であることが表示されます。ターミナルへ。
  • それ以外 : if ステートメントと elif ステートメントの両方の条件が false の場合、スクリプトは else ブロックにジャンプします。
  • echo $num はゼロです。 : この行は、「num」の値が 0 以下で 0 以上の場合に実行され、$num がゼロと表示されます。ターミナルへ。
  • なれ : これは、if-elif-else ブロックの終わりを意味します。

出力:

「if-elif-else」を使用して数値が正、負、またはゼロの場合

「if-elif-else」を使用して数値が正、負、またはゼロの場合

Bash のネストされた if ステートメント

Bash では、ネストされたものを使用できますif>ステートメントを使用して、より複雑な条件構造を作成します。入れ子の構文は次のとおりです。if>声明:

#!/bin/bash

if [条件1];それから
# 条件1が真の場合に実行されるコード
if [条件2];それから
# 条件2がtrueの場合に実行されるコード
それ以外
# 条件2が偽の場合に実行されるコード
なれ
それ以外
# 条件1が偽の場合に実行されるコード
なれ

説明:

  • if [条件1];それから :こちらはアウターですif>声明。もしcondition1>true の場合、このブロック内のコードが実行されます。
  • # 条件1が真の場合に実行されるコード : このコメントを、次の場合に実行する実際のコードに置き換えます。condition1>それは本当です。
  • if [条件2];それから : 外側のブロックの内側if>ステートメントには内部がありますif>声明。もしcondition2>true の場合、このブロック内のコードが実行されます。
  • # 条件2がtrueの場合に実行されるコード : このコメントを、次の場合に実行する実際のコードに置き換えます。condition2>それは本当です。
  • それ以外 : もしcondition2>内側にあるif>ステートメントが false の場合、内部のコードはelse>内側のブロックif>ステートメントが実行されます。
  • # 条件2が偽の場合に実行されるコード : このコメントを、次の場合に実行する実際のコードに置き換えます。condition2>は誤りです。
  • なれ : これはインナーの終わりを示しますif>声明。
  • それ以外 : もしcondition1>外側にあるif>ステートメントが false の場合、内部のコードはelse>アウターのブロックif>ステートメントが実行されます。
  • # 条件1が偽の場合に実行されるコード : このコメントを、次の場合に実行する実際のコードに置き換えます。condition1>は誤りです。
  • なれ : これは外側の終わりを示します。if>声明。

ネストされた if ステートメントを使用して Bash で年齢資格と高齢者の給付金を確認する方法は?

ネストされた if を使用できるように、上記のコードを少し調整してみましょう。

#!/bin/bash
# ユーザーに年齢の入力を求める
echo -n 年齢を入力してください:
年齢を読む

if [ $age -ge 18 ];それから
エコー あなたには投票する資格があります。
if [ $age -ge 65 ];それから
echo あなたも高齢者給付金を受け取る資格があります。
それ以外
echo あなたはまだ高齢者給付金の受給資格がありません。
なれ
それ以外
エコー あなたにはまだ投票する資格がありません。
なれ

説明:

ノードjsのコマンド
  • #!/bin/bash : この行は、スクリプトが Bash シェルを使用して解釈および実行される必要があることを示すシバンです。
  • # ユーザーに年齢の入力を求める : 次の行の目的を示すコメントです。
  • echo -n 年齢を入力してください: : この行は、次の行に移動せずに、「年齢を入力してください:」というメッセージを端末に出力します。ユーザーは同じ行に自分の年齢を入力します。
  • 年齢を読む : この行はユーザーの入力を読み取り、それを変数「age」に割り当てます。
  • if [ $age -ge 18 ];それから : これは、「age」の値が 18 以上であるかどうかをチェックする if ステートメントです。
    • $年齢 : 変数「年齢」の値を表します。
    • -ge : 数値比較の場合、「以上」を表します。
    • 18 : 比較される値。
  • エコー あなたには投票する資格があります。 : 前の行の条件が true の場合、この行が実行され、「投票する資格があります」と表示されます。ターミナルへ。
  • if [ $age -ge 65 ];それから : 最初の if ブロック内にある、これは、「age」の値が 65 以上であるかどうかをチェックする別の if ステートメントです。
    • $年齢 : 変数「年齢」の値を表します。
    • -ge : 数値比較の場合、「以上」を表します。
    • 65 : 比較される値。
  • echo あなたも高齢者給付金を受け取る資格があります。 : 内側の if ステートメントの条件が true の場合、この行が実行され、印刷されます。あなたも高齢者給付金の受給資格があります。ターミナルへ。
  • それ以外 : 内側の if ステートメントの条件が false の場合、スクリプトは外側の if ステートメント内の else ブロックにジャンプします。
    • echo あなたはまだ高齢者給付金の受給資格がありません。 : この行は、「年齢」の値が 65 以上でない場合に実行され、「あなたはまだ高齢者給付金の受給資格がありません」と表示されます。ターミナルへ。
  • なれ : これは、内側の if-else ブロックの終わりを示します。
  • それ以外 : 外側の if ステートメントの条件が false の場合、スクリプトは else ブロックにジャンプします。
    • エコー あなたにはまだ投票する資格がありません。 : この行は、「年齢」の値が 18 以上でない場合に実行され、「まだ投票する資格がありません」と表示されます。ターミナルへ。
  • なれ : これは、外側の if-else ブロックの終わりを示します。

出力:

Bash を使用したネストされた場合

Bash を使用したネストされた場合

コンディションに関するFAQと注意事項

bash でテスト条件を作成する際に留意すべき点がいくつかあります。

1. 括弧と実際のチェック/比較ステートメントの間に空白を入れてください。

たとえば、次のような場合は機能しません。

if [$x==0]>

Bash は次のエラーを報告します。 ない ]

2. 新しいキーワードを追加する前に、必ず行を終了してください (then など)。

If、then、else、elif、fi はすべてシェル キーワードであるため、同じ行で使用することはできません。 ;を入れてください。前のステートメントとキーワードの間に挿入するか、キーワードで新しい行を開始します。

3. 1 つのステートメントで多くの条件を使用するには、論理演算子を使用します。

論理 AND(&&) または論理 OR(||) 演算子を使用して、複数の条件を使用できます。

例えば:

if [[ $x -ge $y ]] && [[ $x -ge $z ]]; then  echo 'x is greatest' fi>

ここで、-ge は「以上」の省略形です。

4. Bash if ステートメントで文字列を比較するにはどうすればよいですか?

`を使用します => `>文字列の等価性を表す演算子と ` !=`> 不平等のために。

例えば:

if [ '$string1' = '$string2' ]; then  # Code to execute if strings are equal else  # Code to execute if strings are not equal fi>

5. Bash の if ステートメントで正規表現を使用できますか?

はい、「`」を使用できます。 [[ ... ]]`> 正規表現を使用したより高度な文字列マッチングを行うための構造体。

CTC 完全形式

例えば:

if [[ '$string' =~ ^[0-9]+$ ]]; then  # Code to execute if the string contains only numbers else  # Code to execute if the string does not contain only numbers fi>

6. if ステートメントを使用して Bash スクリプトにファイルが存在するかどうかを確認するにはどうすればよいですか?

`を使用できます -e`> 次のように条件内のフラグを指定します。

if [ -e 'filename' ]; then  # Code to execute if the file exists else  # Code to execute if the file does not exist fi>

7. Bash スクリプトの if-else ステートメントの構文は何ですか?

の基本的な構文 「if-else」 Bash スクリプトのステートメントは次のとおりです。

if [ condition ]; then  # Code to execute if condition is true else  # Code to execute if condition is false fi>

8. Bash スクリプトで elif ステートメントを使用するにはどうすればよいですか?

` elif`> ステートメントは、最初の条件が満たされている場合に追加の条件をチェックするために使用されます。if>条件が偽です。

以下に例を示します。

if [ condition1 ]; then  # Code to execute if condition1 is true elif [ condition2 ]; then  # Code to execute if condition2 is true else  # Code to execute if none of the conditions are true fi>

9. Bash if ステートメントで論理演算子 (AND、OR) を使用するにはどうすればよいですか?

`を使用できます -a`> 論理積と ` の場合 -o`> 論理和の場合。

例えば:

if [ condition1 -a condition2 ]; then  # Code to execute if both conditions are true fi>

結論

この記事では、コンピューターに自動的に処理を実行させる非常に便利なツールのような Bash スクリプトについて説明しました。この記事では、スクリプトにおける意思決定者のような Bash の if ステートメントについて説明しました。私たちは基本を学び、数値が偶数であるかどうかを確認したり、誰かが投票できるかどうかを調べたりするなどの例を確認し、さらに多くの条件を処理したり、相互に if ステートメントを挿入したりするなど、より複雑なことも検討しました。この記事では、Bash スクリプトの使用方法を向上させるために、明確な説明と例が提供され、よくある質問への回答が示されています。重要なポイントは、スクリプトがスムーズに動作し、コンピューター上でタスクを処理しやすくするために、スペースや特別なルールなどの詳細に注意することです。