Mac のgetopts
ではロングオプションが使えないみたいなので、そういうの使いたい場合は他の言語つかいましょう。
getopts
-a
や-b
などハイフンで始まる cli オプションを解析してくれるコマンドです
while getopts <条件> <変数名>; do ...; done
という書き方で書けて、すべてのオプションを繰り返し処理できます。また、このブロックの中では$OPTARG
という名前でオプションの値を使うことができます。
条件
オプションでどの文字を使うか設定します。a
と書くと-a
単体で使うオプションだと設定でき、a:
とコロンを置くと-a foo
のようにオプション値が必要なオプションだと設定できます。
例
#!/bin/sh
show_list() {
# 何か
return 0
}
show_help() {
echo 'command'
echo ' 何かコマンド'
echo ''
echo 'options'
echo ' -l 一覧を表示'
echo ' -h ヘルプを表示'
return 0
}
while getopts hl: option
do
case "$option" in
"l" ) show_list $OPTARG ;;
"h" ) show_help ;;
esac
done