hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。
07/17/2003 む [長年日記]
tDiary 266日目
■ [Bash][Tips] オプション解析
ちょっとでも凝ったプログラムを書きたいと思ったとき,オプションによって動作を変えたい,なんて欲求が生まれるのは当然だ.そんなとき,Bash に組み込まれている getopts というものを使うと楽だ.例えば,-s,-v,-o というオプションを受け付けるようにしたい場合,
while getopts svo opt $@
do
case "${opt}" in
s) echo "-sがセットされてます";;
v) echo "-vがセットされてます";;
o) echo "-oがセットされてます";;
*) exit -1;;
esac
done
といったように場合分けすることができる.while getopts とすることで,コマンドラインからのオプションを一つずつ解析して,case でそれぞれに応じた処理をさせることができるというわけだ.
また,例えばここで -s に何らかの引数を持たせたい場合は以下にようにするといい.
while getopts s:vo opt $@
do
case "${opt}" in
s) echo "-sがセットされてます.引数は ${OPTARG}です.";;
v) echo "-vがセットされてます";;
o) echo "-oがセットされてます";;
*) exit -1;;
esac
done
getopts の引数が svo から s:vo に変わっていることに注目.コロンを付けると,そのオプションが何らかの引数を持つとすることができる.そして,その引数は ${OPTARG} に格納される.-s オプションを引数なしで指定するとエラー終了することになる.