シェルスクリプト

シェルスクリプトのコマンドライン引数の処理【$1/$@/getopts活用】

シェルスクリプト
記事内に広告が含まれています。

スクリプトに値を渡せると汎用性が高まります。この記事ではコマンドライン引数の受け取り方と処理方法を解説します。

基本的な引数変数

変数意味
$0スクリプト名
$1〜$9第1〜9引数
$#引数の個数
$@全引数のリスト
#!/bin/bash
echo "スクリプト名: $0"
echo "第1引数: $1"
echo "引数の数: $#"
echo "全引数: $@"

引数の数をチェックする

if [ $# -lt 2 ]; then
  echo "使い方: $0 <名前> <年齢>"
  exit 1
fi
name="$1"
echo "${name}さんこんにちは"

全引数をループで処理する

for arg in "$@"; do
  echo "引数: $arg"
done

getoptsでオプションを処理する

while getopts "vf:o:" opt; do
  case $opt in
    v) verbose=true ;;
    f) input_file="$OPTARG" ;;
    o) output="$OPTARG" ;;
    *) echo "不明なオプション"; exit 1 ;;
  esac
done

まとめ

  • $1〜で引数を受け取り、$# で個数を確認する
  • $@ でforループを使って全引数を処理できる
  • getopts-f-v などのオプション処理ができる
  • 引数不足時は使い方を表示して exit 1 で終了するのが作法

コメント

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