Bashスクリプト初心者必見!基本的なif文の使い方と応用例を徹底解説

Bashスクリプトは、LinuxやUnixなどのオペレーティングシステム上でよく使用される強力なスクリプト言語の一つです。特にif文は、条件に基づいて異なる動作をするために非常に重要です。本記事では、Bashスクリプト初心者向けに、基本的なif文の使い方と応用例を徹底解説していきます。これを使いこなせれば、様々なタスクの自動化や効率的なスクリプト作成が可能になります。

Bashスクリプトにおけるif文の基本構造

まず、Bashスクリプトの基本的なif文の構造を理解しましょう。if文は、条件式を評価し、その結果に応じてコードブロックを実行する制御文です。このため、スクリプトが特定の状況に基づいて異なる処理を行うのに役立ちます。

基本構造

if [ 条件式 ]; then
    # 条件式が真の場合に実行されるコマンド
else
    # 条件式が偽の場合に実行されるコマンド
fi

[ 条件式 ]の部分は、条件が満たされているかどうかをチェックします。then以降に書かれたコードは条件が真の場合に実行され、else以降のコードは偽の場合に実行されます。fiはif文の終了を示します。

サンプルコード

以下は、簡単なif文の例です。

#!/bin/bash

number=5

if [ $number -gt 0 ]; then
    echo "The number is positive."
else
    echo "The number is not positive."
fi

このスクリプトは変数numberが0より大きいかどうかを判断し、結果に応じてメッセージを表示します。

if文の条件式

次に、条件式にどのようなオペレーターを使用できるかを見ていきましょう。

文字列比較

  • =: 左右の文字列が等しい場合に真
  • !=: 左右の文字列が異なる場合に真
if [ "$str1" = "$str2" ]; then
    echo "Strings are equal."
fi

数値比較

  • -eq: 左辺と右辺の数値が等しい
  • -ne: 左辺と右辺の数値が異なる
  • -gt, -lt, -ge, -le: 数値がそれぞれより大きい、小さい、以上、以下である
if [ $num1 -lt $num2 ]; then
    echo "num1 is less than num2."
fi

ファイル比較

  • -e: ファイルが存在する
  • -d: ディレクトリが存在する
  • -f: ファイルが存在し普通のファイル
file="/path/to/file"

if [ -e $file ]; then
    echo "File exists."
fi

複数条件の評価

複雑な判断をする場合には、複数の条件を組み合わせることができます。

  • &&: 論理積、両方の条件が真である場合
  • ||: 論理和、どちらかの条件が真である場合
if [ $age -ge 18 ] && [ $age -lt 65 ]; then
    echo "Person is an adult."
fi

この例では、変数ageが18以上かつ65未満のとき、「Person is an adult.」が表示されます。

if文の入れ子

if文は他のif文の中に入れることができます。これを「入れ子のif文」と言います。

if [ $num1 -gt 0 ]; then
    if [ $num1 -lt 10 ]; then
        echo "num1 is between 1 and 9."
    else
        echo "num1 is 10 or greater."
    fi
else
    echo "num1 is zero or negative."
fi

このスクリプトは、num1が0より大きく10より小さいか、またはその他の条件でメッセージを分岐させています。

応用例

次に、実際に使われる応用例をいくつか見てみましょう。

ファイル存在チェックスクリプト

以下のスクリプトは、指定されたファイルが存在するかどうかをチェックし、存在する場合のみその内容を表示します。

#!/bin/bash

filename="example.txt"

if [ -f "$filename" ]; then
    echo "File $filename found. Displaying contents:"
    cat "$filename"
else
    echo "File $filename not found."
fi

簡易パスワード確認スクリプト

以下は、ユーザーにパスワードを入力させ、それが特定の条件を満たすかどうかを確認するスクリプトです。

#!/bin/bash

read -sp "Enter your password: " password
echo

min_length=8

if [ ${#password} -ge $min_length ]; then
    echo "Password length is sufficient."
else
    echo "Password is too short. It should be at least $min_length characters."
fi

まとめ

Bashスクリプトでのif文の使用は、特定の条件下で異なる動作をスクリプトにさせるための基本的かつ重要な技術です。この記事では、基本的なif文の使い方から、条件式の書き方、そして実際の応用例まで幅広く解説しました。これらを身につけることで、Bashスクリプトの活用幅が大きく広がるでしょう。練習を重ねて、ぜひともBashスクリプトのスキルを向上させてください!

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする
未分類

コメント

タイトルとURLをコピーしました