お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。

Linuxコマンドメモ:getopts

投稿日:
OS::Linux::コマンド

シェルスクリプトでオプションパラメーターを解析するやつ
基本shiftと合わせて使う

サンプルコード

とりあえず最低限の動作サンプル的なやつ

#!/bin/bash

usage_exit () {
    echo "Usage: $0 [-p piyo] [-f] <foo> <bar>"
    exit 1
}

# オプション名の後ろに `:` をつけるとパラメーターを取れる、つけないと取れない
# オプション先頭に `:` をつけるとエラーハンドリングを自動でしなくなる
#  e.g. `getopts :p:fh`
while getopts p:fh OPT
do
    case $OPT in
            p) piyo=$OPTARG
            ;;
            f) fuga=1
            ;;
            h) usage_exit
            ;;
            \?) usage_exit
            ;;
    esac
done

# オプション分の引数をずらす
# これがないとオプションが `$1` とかに入ってくる
shift $((OPTIND - 1))

# オプションを抜いた引数を取る
foo=$1
bar=$2

echo $foo
echo $bar
echo $piyo
echo $fuga