スポンサーリンク
オプションの後ろに引数が必要な場合
シェルのgetoptsを使った引数設定についてです。
下記のように、例えば、-fオプションを設定する場合、
fのあとに":"をつけると、引数が必要になります。
while getopts f:d:k: OPTION
下記がサンプルコードになります。
引数チェックをしています。
参考:シェル変数($#)で引数チェックをする
$ cat sample.sh #!/bin/sh if [ $# = 0 ]; then echo 引数なし exit 1 fi while getopts f:d:k: OPTION do case $OPTION in f) echo $OPTARG;; d) echo $OPTARG;; k) echo $OPTARG;; esac done
下記が実行結果になります。
$ ./sample.sh -f optionf optionf
オプションの後ろに引数がないとエラーとなります。
$ ./sample.sh -f ./sample.sh: option requires an argument -- f
想定外のオプションを設定するとエラーとなります。
$ ./sample.sh -h ./sample.sh: illegal option -- h
スポンサーリンク
オプションの後ろに引数が不要な場合
下記のように、-fオプションを設定する場合、
fのあとに":"をつけないと、引数が不要になります。
下記がサンプルコードになります。
$ cat sample1.sh #!/bin/sh while getopts fd:k: OPTION do case $OPTION in f) echo -fのオプション;; d) echo $OPTARG;; k) echo $OPTARG;; esac done
下記が実行結果になります。
-fオプションは引数が不要です。
$ ./sample1.sh -f -fのオプション
-dオプションは引数を設定しないとエラーとなります。
$ ./sample1.sh -d optiond optiond $ ./sample1.sh -d ./sample1.sh: option requires an argument -- d
スポンサーリンク