Skip to content

bash スクリプトでショート/ロングオプションの両方を扱う

bash スクリプトで引数を扱うには getopts を利用します。 ショートオプション/ロングオプションの両方を扱う場合のスクリプト例をメモしておきます。

サンプルスクリプト

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/env bash

function base() {
    echo base
}

function full() {
    echo full
}

while getopts ":b-:" opt; do
    case "$opt" in
        -)
            case "${OPTARG}" in
                base)
                    base
                    exit
                    ;;
            esac
            ;;
        b)
            base
            exit
            ;;
    esac
done

base
full

実行例

1
2
3
# ./sample.sh
base
full
1
2
# ./sample.sh -b
base
1
2
# ./sample.sh --base
base