• ..

Shell

    オプション付きのシェルスクリプトを書く

    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 <arg>  一覧を表示'
      echo '  -h        ヘルプを表示'
      return 0
    }
    
    while getopts hl: option
    do
      case "$option" in
        "l" ) show_list $OPTARG ;;
        "h" ) show_help ;;
      esac
    done