【Linux】シェルスクリプトの制御文

 シェルスクリプトの制御構造は、プログラムの基本的な処理方法と同様に、主に以下の3つの処理の組み合わせで構成されています。

シェルスクリプトの制御構造

処理の種類説明
順次処理コマンドを上から順に一行ずつ実行する処理
条件分岐処理条件に応じて異なる処理を行うための制御文
繰り返し処理同じ処理を繰り返し実行するための制御文
シェルスクリプトの制御構造

順次処理

 順次処理は、スクリプト内のコマンドを上から順に一行ずつ実行する処理方法です。これが最も基本的な処理の流れです。特別な制御文は不要です。

例:順次処理

このスクリプトでは、echo コマンドが順番に実行されます。

#!/bin/bash
echo "Step 1: Hello"
echo "Step 2: World"
echo "Step 3: Linux"

条件分岐処理

条件分岐処理は、条件に応じて異なる処理を行うための制御文です。主に if 文や case 文が使用されます。

例:条件分岐処理

 このスクリプトでは、ユーザーが入力した数が10より大きいかどうかで異なるメッセージを表示します。

#!/bin/bash
echo "Enter a number: "
read number
if [ $number -gt 10 ]; then
    echo "The number is greater than 10."
else
    echo "The number is 10 or less."
fi

クリプトの内容と解説

コマンド説明
#!/bin/bashスクリプトが bash シェルで実行されることを指定します。
echo "Enter a number: "ユーザーに数値の入力を促すメッセージを表示します。
read numberユーザーが入力した数値を変数 number に格納します。
if [ $number -gt 10 ]; then変数 number が10より大きいかどうかを判定します。
echo "The number is greater than 10."条件が真(10より大きい)の場合に表示されるメッセージです。
else条件が偽(10以下)の場合の処理を開始します。
echo "The number is 10 or less."条件が偽(10以下)の場合に表示されるメッセージです。
fiif 文の終了を示します。

スクリプトの動作の流れ

  1. スクリプトが bash シェルで実行されます。
  2. ユーザーに「Enter a number: 」と表示され、数値の入力が促されます。
  3. ユーザーが入力した数値が変数 number に格納されます。
  4. if 文で、変数 number の値が10より大きいかどうかを判定します。
    真の場合: "The number is greater than 10." と表示されます。
    偽の場合: "The number is 10 or less." と表示されます。

繰り返し処理

 繰り返し処理は、同じ処理を繰り返し実行するための制御文です。主に for ループ、while ループ、until ループが使用されます。

このスクリプトでは、for ループを使って1から5までの数を順に表示します。

例:繰り返し処理

 シェルスクリプトの制御構造は、順次処理、条件分岐処理、繰り返し処理の3つで構成されています。これらを組み合わせることで、複雑な処理やタスクの自動化を効率的に行うことができます。

#!/bin/bash
for i in 1 2 3 4 5
do
    echo "Iteration $i"
done

まとめ

処理の種類説明
順次処理コマンドを上から順に一行ずつ実行する処理
条件分岐処理条件に応じて異なる処理を行うための制御文
繰り返し処理同じ処理を繰り返し実行するための制御文
シェルスクリプトの制御構造

 これらの基本的な制御構造を理解し、適切に使用することで、シェルスクリプトの機能を最大限に活用することができます。