HOWTO · Bash

Bash スクリプトの複数の if 条件

複数の if 条件の使用に関する Bash プログラミングチュートリアル。

このページの内容

このプログラミングチュートリアルでは、bash の条件付き構造、特に単一および複数の条件を持つ if 条件について説明します。

Bash プログラミングの概要

Bash は、UNIX および Linux オペレーティングシステムのシンプルなコマンドラインインタープリターです。このインタープリターを使用すると、コマンドラインを使用していくつかのコマンドを実行できます。これらのコマンドは、スクリプトと呼ばれるファイルに入力することでまとめて実行できます。

シェルスクリプトは、bash で個別に実行したり、スクリプトファイルに書き込んだりして、後でそのスクリプトファイルを bash で実行できる bash コマンドのコレクションに他なりません。どちらの場合も結果は同じままです。

Bash は開発者にとって重要なツールであり、通常、頻繁に実行する必要のある反復的なタスクを自動化するために使用されます。Bash プログラミングは習得が容易で、bash コマンドの基本的な知識のみが必要です。

Bash スクリプトを書く

Bash スクリプトは、拡張子が .script のファイルに書き込まれます。Linux は拡張機能のないオペレーティングシステムですが、bash スクリプトにこの拡張機能を追加することは優れたプログラミング規約です。

次のコマンドの機能は、新しいファイルを作成することです。

vim myscript.sh

このコマンドを実行すると、myscript.sh という名前のファイルが作成され、vim エディターで開かれます。以下は、すべての bash スクリプトの最初の行です。

#!/bin/bash

この行は shebang と呼ばれ、オペレーティングシステムに bash インタープリターの場所を通知するために作成されています。この行の後、bash スクリプトの実際のコードが開始されます。

Bash スクリプトの条件ステートメント

Bash スクリプトでは、次のような複数のタイプの条件ステートメントを使用できます。

  • if ステートメント
  • if .. then.. else ステートメント
  • if .. elif ステートメント
  • ネストされた if ステートメント
  • case ステートメント

単一および複数の条件を使用した if ステートメントについて説明します。if ステートメントに移る前に、if ステートメントで一般的に使用されるいくつかの条件演算子を見てみましょう。

演算子記号 説明
-eq 2つの数値が等しい場合は、true を返します。
-lt 数値が別の数値よりも小さい場合は、true を返します。
-gt ある数値が別の数値より大きい場合は、true を返します。
== 2つの文字列が等しい場合は、true を返します。
!= 2つの文字列が等しくない場合は、true を返します。
! 使用されている式を無効にします。

1つの条件で if ステートメントを使用する

構文:

if [ condition-statement ];
    then
        Commands..
fi

if 条件を使用する bash スクリプトの例を見てみましょう。

脚本:

#!/bin/bash
echo "Enter your marks out of 100: "
read marks
if [ $marks -gt 100 ]; then
printf "You have entered incorrect marks: $marks\n "
fi

出力:

1つの条件で if ステートメントを使用する

複数の条件で if ステートメントを使用する

前の例では、単一の条件を使用しました。複数の条件を適用し、論理演算子 AND または OR 演算子を使用してそれらを分離することもできます。

以下の例を見てみましょう。

脚本:

#!/bin/bash
echo "Enter your marks out of 100: "
read marks
if [[ $marks -gt 100 && $marks -lt 0 ]]; then
printf "You have entered incorrect marks: $marks\n "
fi

出力:

複数の条件を持つ if ステートメントを使用します