👌

【Shell】引数に応じて処理を分ける Shell Script の基本

に公開

引数に応じて処理を分ける Shell Script の基本

この記事では、シェルスクリプト(bash)で 引数によって処理内容を分ける方法 を紹介します。
テスト自動化やツール起動の分岐処理などに便利です。


✅ サンプルスクリプト

#!/bin/bash

case "$1" in
  1) echo "1の処理" ;;
  2) echo "2の処理" ;;
  3) echo "3の処理" ;;
  4) echo "4の処理" ;;
  5) echo "5の処理" ;;
  *) echo "その他の処理" ;;
esac

🔍 解説

  • $1 は、スクリプト実行時の 第1引数 を意味します。
  • case 文を使うことで、値に応じた処理をシンプルに分けられます。
  • ;; は各処理の終了を示す必要があります。
  • * はデフォルト(どれにも当てはまらない場合)の処理です。

🛠 実行例

bash sample.sh 3
3の処理
bash sample.sh abc
その他の処理

追記

#!/bin/bash

# 引数がない場合のエラーメッセージ
if [ $# -eq 0 ]; then
  echo "引数を指定してください。"
  exit 1
fi

# 引数に応じた返事
case $1 in
  tarou)
    echo "ゴリラ"
    ;;
  1)
    echo "数字の1ですね。"
    ;;
  2)
    echo "数字の2ですね。"
    ;;
  *)
    echo "適当な返事です。"
    ;;
esac


このように case 文を使うことで、シンプルかつ柔軟なスクリプトが書けます。

Discussion