Bashスクリプトで「if」と「and」を活用した条件分岐の実践ガイド

Bashスクリプトは、システム管理や自動化のために頻繁に使用されますが、その中でも条件分岐は非常に重要な役割を果たします。「if」ステートメントを用いることで、特定の条件に基づいてスクリプトの動作を制御することができます。また、複数の条件を組み合わせて「and」条件を使用することで、さらに柔軟な条件指定が可能になります。この記事では、Bashスクリプトで「if」と「and」を活用した条件分岐について詳しく説明し、実践的な例を交えて解説します。

Bashでの基本的な「if」構文

Bashスクリプトにおける「if」ステートメントの基本構文は以下のようになります。

if [ 条件 ]; then
  コマンド1
  コマンド2
  ...
fi

[ 条件 ]の部分で指定された条件が真であれば、thenの直後に続くコマンドが実行されます。fiは「if」の終わりを示します。

シンプルな「if」ステートメントの例

例えば、あるファイルが存在するかどうかをチェックする簡単なスクリプトは次の通りです。

#!/bin/bash

filename="example.txt"

if [ -e "$filename" ]; then
  echo "File $filename exists."
else
  echo "File $filename does not exist."
fi

ここでは、-eオプションを使用してファイルの存在を確認しています。もしファイルが存在すればその名前を出力し、存在しなければその通知を行います。

複数条件の組み合わせ:「and」の使用

「and」条件を使うことで、複数の条件を組み合わせてより具体的な条件分岐を行うことができます。Bashでの「and」は、条件を二つの中括弧内に挟んで記述するスタイルが一般的です。

if [ 条件1 ] && [ 条件2 ]; then
  コマンド1
  コマンド2
  ...
fi

複数条件を指定した例

次に、ファイルが存在し、かつ読み取り可能であるかをチェックするスクリプトを示します。

#!/bin/bash

filename="example.txt"

if [ -e "$filename" ] && [ -r "$filename" ]; then
  echo "File $filename exists and is readable."
else
  echo "File $filename does not exist or is not readable."
fi

ここで、-rオプションはファイルが読み取り可能であるかを確認します。二つの条件を結合して、「ファイルが存在する」かつ「読み取り可能である」という条件を満たす場合のみ、真のブロックが実行されます。

条件の応用:数値の比較

ファイル操作だけでなく、数値の比較でも「if」構文は応用できます。以下に、二つの変数の値を比較する例を示します。

#!/bin/bash

num1=10
num2=20

if [ "$num1" -eq "$num2" ]; then
  echo "Numbers are equal."
else
  echo "Numbers are not equal."
fi

この例では-eqを使用して、二つの数値が等しいかどうかをチェックしています。また、数値が非等の場合やその他の条件も指定できます。

実用的な例:ディスク容量の確認

実際のBashスクリプトでは、条件を組み合わせてより複雑な要件を処理します。その一つの例として、ディスク容量があるしきい値を超えた場合に警告を表示するスクリプトを見てみましょう。

#!/bin/bash

threshold=80
current_usage=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')

if [ "$current_usage" -ge "$threshold" ]; then
  echo "Warning: Disk space usage is over $threshold%!"
fi

このスクリプトは、dfコマンドを使ってルートファイルシステムのディスク使用率をチェックし、その値が80%を超えている場合に警告を出します。-geは「greater than or equal to(以上)」を意味します。

結論

Bashスクリプトでの「if」と「and」を組み合わせた条件分岐は、スクリプトの柔軟性を大幅に向上させる強力な手段です。ファイルの存在チェックや数値の比較、さらにはディスク容量の管理まで、多岐にわたるタスクを効率的に処理できます。条件分岐を適切に活用することにより、日々のシステム管理や自動化作業をより効果的に行えるでしょう。ぜひ、実際のプロジェクトでこれらのテクニックを活用してみてください。

Bash玄

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

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

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

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

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

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

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

コメント

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