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スクリプトチートシートもご覧ください!