bashでシェルスクリプトを書くときにいつも調べ直すので、覚書。いい加減覚えろよ、という話ですが、それはそれとして・・^^;
シェルスクリプトに渡す引数を処理する、getoptsの使い方や、関数に複数の引数を与えるなどのテストです。
#!/bin/bash
_usage() {
echo "Usage :"
echo "${0} [-a] [-b HOGE] [-c] [-d HUGA]"
exit 1
}
_myfunc() {
echo "arg=$1"
}
_multiargs() {
echo "arg1=$1"
echo "arg2=$2"
}
while getopts :ab:cd: OPT
do
case $OPT in
a) VALUE_A="TRUE";;
b) VALUE_B="TRUE";B_VALUE=$OPTARG;;
c) VALUE_C="TRUE";;
d) VALUE_D="TRUE";D_VALUE=$OPTARG;;
:|\?) _usage;;
esac
done
echo "-a: $VALUE_A"
echo "-b: $VALUE_B VALUE=$B_VALUE"
echo "-c: $VALUE_C"
echo "-d: $VALUE_D VALUE=$D_VALUE"
_myfunc $B_VALUE
_multiargs $B_VALUE $D_VALUE
結果は、以下の通り。
$ getopttest.sh -d DIRS -ab
Usage :
getopttest.sh [-a] [-b HOGE] [-c] [-d HUGA]
$ ./getopttest.sh -d DIRS -ab HOGE
-a: TRUE
-b: TRUE VALUE=HOGE
-c:
-d: TRUE VALUE=DIRS
arg=HOGE
arg1=HOGE
arg2=DIRS
0件のコメント