Bashのif elseステートメントガイド:初心者向け解説

January 16, 2025

Bashスクリプトは、Linuxユーザーやエンジニアにとって必須のスキルです。その中でも、if elseステートメントは条件に基づいて処理を切り替える重要な構文です。本記事では、Bashのif elseステートメントの基本構文から、ファイルチェックや正規表現を活用した応用例まで、初心者向けにわかりやすく解説します。


1. if elseステートメントの基本

if elseステートメントは、条件が「真」または「偽」の場合に異なる処理を実行します。

基本構文:


if [ 条件 ]; then
    # 条件が真の場合のコマンド
else
    # 条件が偽の場合のコマンド
fi

注意点:

  • スペースが重要:[の後と]の前にスペースを入れる必要があります。
  • セミコロン(;):thenを同じ行に書く場合は、セミコロンが必要です。

例:


#!/bin/bash

num=10
if [ $num -gt 5 ]; then
    echo "数値は5より大きい"
else
    echo "数値は5以下です"
fi

2. elifを使った複数条件の処理

elifを使用することで、複数の条件を順番に評価できます。

構文:


if [ 条件1 ]; then
    # 条件1が真の場合のコマンド
elif [ 条件2 ]; then
    # 条件2が真の場合のコマンド
else
    # 全ての条件が偽の場合のコマンド
fi

例:


#!/bin/bash

num=15
if [ $num -lt 10 ]; then
    echo "数値は10未満です"
elif [ $num -eq 15 ]; then
    echo "数値はちょうど15です"
else
    echo "数値は15より大きいです"
fi

3. 条件演算子の使い方

Bashでは、数字や文字列、ファイルの状態を評価するための条件演算子が用意されています。

数値の比較:

  • -lt:未満
  • -le:以下
  • -gt:より大きい
  • -ge:以上
  • -eq:等しい
  • -ne:等しくない

文字列の比較:

  • =:等しい
  • !=:等しくない
  • -z:文字列が空かどうかをチェック
  • -n:文字列が空でないかをチェック

ファイルチェック:

  • -e:ファイルが存在する
  • -f:通常のファイルが存在する
  • -d:ディレクトリが存在する
  • -r:ファイルが読み取り可能
  • -w:ファイルが書き込み可能
  • -x:ファイルが実行可能

例:


file="/etc/passwd"
if [ -r $file ]; then
    echo "ファイルは読み取り可能です"
fi

4. 高度な条件構文の活用

Bashでは、[[ ]](( ))を使用することで、より柔軟な条件評価が可能です。

正規表現のマッチング:


name="John123"
if [[ "$name" =~ ^John ]]; then
    echo "名前はJohnで始まります"
fi

算術演算:


a=5
b=10
if (( a < b )); then
    echo "aはbより小さい"
fi

5. 実践例

学んだ内容を活用したいくつかの例を紹介します。

例1:複数条件のチェック


#!/bin/bash

num=8
if (( num > 5 )) && [ $num -lt 10 ]; then
    echo "数値は5より大きく、10未満です"
fi

例2:ファイルの存在と実行可能性のチェック


#!/bin/bash

file="/bin/bash"
if [ -e "$file" ]; then
    echo "ファイルは存在します"
    if [ -x "$file" ]; then
        echo "ファイルは実行可能です"
    fi
else
    echo "ファイルは存在しません"
fi

まとめ

Bashのif elseステートメントを習得することで、スクリプトを柔軟で強力なものにできます。基本から応用までを理解して、効率的なスクリプト作成に役立てましょう。

さらにBashスクリプトを学びたい方は、私たちのBashスクリプトチートシートもご覧ください!