Linuxシェルスクリプトの条件分岐をマスターする

この記事では、Linuxでよく使われるシェルスクリプトの条件分岐について詳しく解説します。具体的なコード例とその解説、さらに応用例を含めて取り扱います。

目次

シェルスクリプトの条件分岐の基本

Linuxのシェルスクリプトは、多くのタスクを自動化するための強力なツールです。特に条件分岐は、スクリプト内での判断を可能にし、さまざまな状況に対応するための重要な要素です。

基本的なif文

シェルスクリプトの基本的な条件分岐には「if文」が用いられます。以下はその基本形です。

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

こちらは、指定した条件が真であれば、コマンドが実行されるというものです。

条件テスト

条件分岐には、数値や文字列の比較、ファイルのテストなど、さまざまな条件テストを利用できます。以下はいくつかの基本的な例です。

# 数値の比較
if [ $a -eq $b ]; then
  echo "aはbと等しい"
fi

# 文字列の比較
if [ "$str1" = "$str2" ]; then
  echo "str1とstr2は等しい"
fi

# ファイルのテスト
if [ -e filename ]; then
  echo "filenameは存在する"
fi

応用例

1. ファイルの存在チェックとバックアップ

指定したファイルが存在する場合に、バックアップを取るスクリプト例です。

#!/bin/bash
filename="target.txt"
if [ -e $filename ]; then
  cp $filename "${filename}.bak"
  echo "バックアップを取りました"
fi

2. ユーザーの入力に応じた処理

ユーザーからの入力によって処理を変更する例です。

#!/bin/bash
echo "実行しますか?(y/n)"
read answer
if [ "$answer" = "y" ]; then
  echo "実行しました"
else
  echo "キャンセルしました"
fi

3. ディレクトリの存在チェックと作成

指定したディレクトリが存在しない場合に、新しくディレクトリを作成するスクリプト例です。

#!/bin/bash
dirname="new_directory"
if [ ! -d $dirname ]; then
  mkdir $dirname
  echo "$dirname を作成しました"
fi

4. 数値の大小比較

2つの数値を比較して、どちらが大きいかを表示するスクリプト例です。

#!/bin/bash
echo "2つの数値を入力してください"
read num1 num2
if [ $num1 -gt $num2 ]; then
  echo "$num1 は $num2 より大きい"
elif [ $num1 -eq $num2 ]; then
  echo "$num1 と $num2 は等しい"
else
  echo "$num1 は $num2 より小さい"
fi

まとめ

シェルスクリプトの条件分岐は、Linuxにおけるスクリプトの自動化やタスクの制御において非常に役立ちます。この基本を理解し、実際の作業に活かしてみてください。

コメント

コメントする

目次