50%オフ すべてのプラン、期間限定。から開始 $2.48/mo
残り10分
サーバーとOS

Bash If ステートメント: 構文、バリエーション、ユースケース、コマンドなど!

ピウス・ボーデンマン By ピウス・ボーデンマン 10 分で読めます 2024 年 1 月 28 日更新
bash スクリプト

シェル スクリプトでは、Bash if ステートメントは、プログラマーがさまざまな状況に基づいて条件付き実行パスを作成できるようにすることで、重要な役割を果たします。基本的に、if ステートメントを使用すると、テスト結果、ユーザー入力、システム状態などの要素を考慮して、Bash スクリプト内で意思決定を行うことができます。それはさまざまな可能性をナビゲートする方法のようなものです。

Bash スクリプトを使用する場合、if ステートメントは特定の構造に従います。通常は「」で始まります。if” キーワード、その後に評価が必要な条件、”それから” キーワードと、条件が当てはまる場合に実行する 1 つ以上のコマンド。

物事をより柔軟にするために、if ステートメントにオプションの「」を含めることもできます。エリフ” (else if) ステートメント。これは、初期条件が false の場合に機能します。これにより、追加の条件をテストし、それに応じて処理を進めることができます。さらに、if ステートメントには、どの条件も true に当てはまらない場合に実行されるオプションの "else" ステートメントを含めることができます。

if ステートメントを他の Bash コマンドやシェル スクリプトの機能と組み合わせることで、プログラマは複雑なタスクやプロセスを自動化できる高度なスクリプトを作成できます。構文、使用例、例など、Bash if ステートメントについてさらに詳しく知るために、ここに留まってください。

Bash If ステートメントの構文

Bash 構文は、Bash シェル言語で記述されたコマンドとスクリプトの構造と文法を管理する規則を指します。 Bash 構文には、次のようなさまざまな構造と要素が含まれています。

  • コマンド: これらは、特定のタスクを実行するために使用される個々の実行可能プログラムまたはシェル組み込みです。これらの美しい行を使用して Bash プログラミングを扱うことにほとんどの時間を費やすことになります。
  • 引数: これらは、オプション、パラメータ、または入力データを指定するためにコマンドに渡される値です。これらは、コマンドの実行パラメータを指定するために設定される条件と考えてください。
  • 変数: これらは、式で割り当て、操作、または使用できる値を表すシンボルです。これらは通常、コマンドと引数の両方で処理する必要がある値を決定するために使用されます。
  • リダイレクション: これは、入力、出力、またはエラーをファイル、デバイス、またはその他のコマンドとの間でリダイレクトするプロセスです。これらがないと、コマンドが間違った宛先をターゲットにし、コードが台無しになる可能性が高くなります。
  • パイプ: これは、あるコマンドの出力を別のコマンドの入力に接続するためのメカニズムです。これらは通常、大規模なプログラムで高度な条件付きコマンド ラインを実行したり、織り交ぜられたコマンド ラインを作成したりするために使用されます。
  • 制御構造: これらは、ループ、条件、関数などのコマンドの実行フローを制御する構成要素です。制御構造を理解することは、新しいコマンド ラインを作成する上で重要であり、コードに別のレベルの深みを与えます。
  • コメント: これらはシェルによって無視される注釈であり、コードを文書化するか説明を提供するために使用されます。これらは、特にグループ プロジェクトで分析とデバッグを実行する際の重要な参照ポイントです。

シェルがコマンドを解釈して実行するには、Bash 構文を正しく記述する必要があります。構文エラーにより、シェルでエラー メッセージが生成されたり、予期しない動作が発生したりすることがあります。

実際の Bash if ステートメントは次のとおりです。

if condition
then
   command1
   command2
   ...
   commandN
elif condition2
then
   commandA
   commandB
   ...
   commandC
else
   commandX
   commandY
   ...
   commandZ
fi

ここでのケースでは、「条件」とは、true または false の結果を生成するテストを指します。条件が true の場合、then キーワードの後に​​指定された後続のコマンドが実行されます。ここで、代わりに追加の条件を評価したいとします。これを行うには、「elif」キーワードを使用できます。別の可能性を検討する方法を提供します。ここで、どの条件も当てはまらない場合は、「else」キーワードの後に​​指定されたコマンドが機能します。代替計画のようなものです。最後に、if ステートメントの結論を示すために、「if」キーワードを使用します。

Bash ステートメントはどのように機能するのでしょうか?

Bash スクリプトに関しては、if ステートメントは、条件付きテストの結果に基づいてスクリプトのフローをガイドするのに非常に便利です。その目的は、条件を評価し、それが真であると判明した場合は、特定のコマンド セットを実行することを中心としています。

ここで、Bash スクリプト内で if ステートメントが使用されるときに、通常どのように展開するかを見てみましょう。スクリプトは、if ステートメントで指定された条件を評価するのに少し時間がかかります。条件が true であることが判明した場合、「then」ブロックに含まれるコマンドが実行する順番を見つけます。

ただし、条件がたまたま false だった場合、スクリプトは追加の elif 条件の評価を続けます。これらの条件のいずれかが当てはまる場合、対応する elif ブロックのコマンドがステップアップして実行されます。 if ステートメントと elif ステートメントで指定された条件がいずれも true ではない場合、スクリプトはこれを認識し、else ブロック内で指定されたコマンドの実行を開始します (else ブロックが含まれている場合)。

基本的に、if ステートメントはスクリプト内での意思決定を容易にする手段として機能し、テストの結果に応じてスクリプトが異なる実行パスを通過できるようにします。テスト自体は、コマンドの結果や変数に割り当てられた値など、さまざまな要素を考慮に入れることができます。

Bash If ステートメントの例

ここで、基本理論から抜け出し、コーディングのアクティブな開発で Bash if ステートメントをどのように使用できるかを見てみましょう。 Bash if ステートメントがどのように機能するかを示す例を次に示します。

#!/bin/bash
# set a variable
x=5
# evaluate the variable
if [ $x -gt 4 ]
then
  echo "x is greater than 4."
else
  echo "x is less than or equal to 4."
fi

この例では、if ステートメントは変数 x の値を評価します。 x が 4 より大きい場合、スクリプトはコマンドを実行して「x は 4 より大きい」と出力します。 x が 4 以下の場合、スクリプトはコマンドを実行して「x は 4 以下です」を出力します。

裸の Bash If ステートメントとその仕組みをしっかりと理解できたので、バリエーションと関連コマンドをさらに深く掘り下げて、基本的な If ステートメント、ネストされた If ステートメント、Bash If Else、If Elif Else、および Case ステートメントについて 1 つずつ学習していきましょう。

基本的な if ステートメント

基本的な bash if ステートメントから始めましょう。 Bash の if ステートメントは、条件が true かどうかをチェックし、それに応じて関連コードのブロックを実行します。構文は次のとおりです。

if [ condition ]
then
  commands
fi

ここで取り上げているケースでは、スクリプトが条件を評価し、それが true であれば、指定されたコマンドが実行されます。条件が false の場合、スクリプトは「then」セクション内のブロックを実行せずに次のコマンドに進みます。

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

ネストされた if ステートメントは、クリエイティブ名が示すように、別の if ステートメントの中に「ネスト」された if ステートメントです。この入れ子構造により、スクリプト内でより複雑なテストと分析が可能になります。ネストされた if ステートメントの例を次に示します。

if [ condition1 ]
then
  if [ condition2 ]
  then
    commands
  fi
fi

コマンドを見ると、スクリプトが最初のステップとしてcondition1 を評価していることがわかります。条件 1 が true であると検証されると、条件 2 が評価されます。条件 2 も true の場合、スクリプトは必要なコマンドを実行します。

Bash If Else ステートメント

Bash if else ステートメントを使用すると、条件が true か false に基づいてスクリプト内で決定を下せるため、より高度な状況に応じたコードの実行が可能になります。構造は次のようになります。

if [ condition ]
then
  commands1
else
  commands2
fi

この構造により、条件が満たされた場合にスクリプトが「commands1」を迅速に実行することが保証されます。ただし、条件が false の場合は、「commands2」の実行に切り替わります。

If Elif Else ステートメント

場合によっては、複数の条件とそれぞれの結果を考慮する必要があります。 if elif else ステートメントを使用すると、まさにそれを実現できます。次の構文に注意してください。

if [ condition1 ]
then
  commands1
elif [ condition2 ]
then
  commands2
else
  commands3
fi

ここで、スクリプトは最初にcondition1 を評価します。それが真実であると検証された場合。コマンドをすぐに実行します1。ただし、条件 1 が false の場合、スクリプトは条件 2 の評価に進みます。条件 2 が true の場合、コマンド 2 の実行に進みます。そして、条件 1 と条件 2 の両方が false であることが判明した場合、スクリプトはコマンドを実行する代替条件を選択します3。

ケースステートメント

Bash には、他のプログラミング言語で見られる switch ステートメントと同様に機能する case ステートメントがあります。これは、変数の値に基づいてさまざまなコマンド セットを実行する方法を提供します。構造を見てみましょう。

case expression in
  pattern1)
    commands1;;
  pattern2)
    commands2;;
  pattern3)
    commands3;;
*)
default commands;;
esac

ここで、スクリプトは式変数を評価し、それをさまざまなパターンと照合します。一致するものが見つかると、対応するコマンドのセットが実行されます。ただし、一致するものが見つからない場合は、デフォルトのコマンドが正常に実行されます。アスタリスク (*) パターンはワイルドカードとして機能し、カバーされていないものと一致します。

Bash 論理演算子

Bash if ステートメントの陰謀のもう 1 つの主要な部分は、論理演算子です。これらの演算子を使用すると、複数の条件を結合できるため、これらの組み合わせた条件の真偽に基づいて意思決定を行うことができます。 Bash には、if ステートメントで使用するための 3 つの主要な論理演算子が組み込まれています。以下に、3 つの主要なタイプの論理演算子コマンドの例を示します。

  • バッシュ AND (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • 論理和 (II):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then
  echo "Access granted."
fi
  • 等しくない:
if(( ! $a == "true" )) then 
  echo "a" was initially false. 
else
  echo "a" was initially true. 
fi

結論

このブログ投稿では、Bash if ステートメントとその使用方法に関する入門ガイドを提供しました。また、コードをよりすっきりと機能的にする方法についても説明しました。これらの条件ステートメントを効果的に使用すると、複雑なタスクや意思決定を処理できる強力なスクリプトを作成できます。

Linux の世界は初めてですか?私たちをこのエキサイティングな旅の導きの光とさせてください。私たちの Linux VPS は初心者にとって完璧な出発点であり、パワーを犠牲にすることなくシンプルさを提供します。ユーザーフレンドリーなインターフェイスと専門家のサポートにより、Linux サーバーの機能をこれまで以上に簡単に活用できるようになります。 Web サイトをセットアップしている場合でも、アプリケーションをテストしている場合でも、広大な Linux の世界を探索している場合でも、当社の Linux VPS は安全で手間のかからない環境を提供します。自信を持って Linux の世界への最初の一歩を踏み出しましょう – 今すぐ Linux VPS オプションをチェックして、Linux の冒険に乗り出しましょう!

Linux VPS ホスティング

Web サイトやリモート デスクトップをホストするためのエコノミーまたはプレミアム Linux VPS を最安価格で入手しましょう。 VPS Linux KVM で実行して効率を向上させ、NVMe SSD ストレージを備えた強力なハードウェアで動作して速度を向上させます。

続きを読む

よくある質問

Bash if ステートメントで論理演算子を使用できますか?

はい、次のような論理演算子を使用できます。 「&」 そして 「||」 Bash の if ステートメント。例えば、 if [ $var -gt 0 ] && [ $var -lt 10 ];それから … 次の場合にコードのブロックを実行します $var 0 より大きく 10 未満です。

1 つの if ステートメントで複数の条件を使用できますか?

はい、次のような論理演算子を使用して、単一の if ステートメントで Bash if 複数の条件を使用できます。 -a (AND) または -o (または) それらを組み合わせます。例えば、 if [ $var -gt 0 -a $var -lt 10 ];それから … 次の場合にコードのブロックを実行します $var 0 より大きく、かつ 10 より小さい。

Bash if ステートメントでコマンド置換を使用できますか?

はい、コマンドを で囲むことにより、Bash if ステートメントでコマンド置換を使用できます。 $() またはバッククォート ()。例えば、 if [ $(whoami) == “ルート” ];それから … 現在のユーザーが root の場合、コードのブロックが実行されます。

[[ vs [ vs ( vs ((: これらの Bash 演算子の違いは何ですか?

つまり、 [[ は高度な条件付きテストに使用されます。 [ は基本的な条件付きテストに使用されます。 ( はサブシェルのグループ化とコマンドの実行に使用されます。 (( は算術演算に使用されます)。

 

共有

詳細はブログから

読み続けてください。

Cosmos Cloud で実行できる最高のセルフホスト アプリ Cosmos ダッシュボードの周囲にアプリ パネルが配置されたカバー画像。
サーバーとOS

Cosmos Cloud で実行できる最高のセルフホスト アプリ: ファイル、メディア、パスワード、オートメーションなど!

おそらく、Cosmos Cloud を設定済みで、どのアプリがそれによく適合するかを知りたいと考えているかもしれません。あるいは、Cosmos をまだ決めておらず、それが自分のワークフローにどれだけ適合するかを確認したいだけかもしれません。

ニック・シルバーニック・シルバー 16 分で読めます
Docker アプリの管理のための Porttainer と Cosmos Cloud では、ハイブリッド セットアップの図とネオン運用とアクセス ブロックが取り上げられています。
サーバーとOS

Porttainer 対 Cosmos Cloud: Docker アプリ管理に最適

すでに Docker を知っていて、成長するアプリ スタックを実行するためのよりクリーンな方法が必要な場合は、Porttainer と Cosmos Cloud に対する簡単な答えをここに示します。ポーテイナーはディレックにとってより強力なピックだ

ニック・シルバーニック・シルバー 14 分で読めます
Cosmos Cloud、CasaOS、Umbrel のフィーチャー グラフィックは、1 つの抽象的なクラウド ネットワーク世界内の 3 つのセルフホスト パスを示しています。
サーバーとOS

Cosmos Cloud vs CasaOS vs Umbrel: どのセルフホスト プラットフォームがあなたのセットアップに適合しますか?

簡単に言うと、CasaOS は依然として最も簡単に始めることができ、Umbrel は最もすっきりと厳選された感触があり、Doma をより厳密に制御したい場合は Cosmos Cloud が合理的です。

ニック・シルバーニック・シルバー 11 分で読めます

導入する準備はできていますか? 月額 $2.48 から。

2008 年以降の独立したクラウド。AMD EPYC、NVMe、40 Gbps。 14日間の返金。