シェルスクリプトでコマンドライン引数をオプションとして解析したいときは、getoptsを使うのが一般的なやり方だ。 でも、getoptsはGNUスタイルの長いオプションに対応していないので、--helpとかのオプションを受け付けれないという欠点がある。そんなときでも、zshならzparseoptsというコマンドを使えば長いオプションでも解析できるので紹介する。 基本パターン まずは一番簡単なパターンとして、次の3つのオプションを解析する例を紹介する(mvコマンドのオプションをイメージしている)。どのオプションも引数は取らない。 -v --help --version このオプションをパースするには、zparseoptsというzshの組み込みコマンドを使って、次のように書く。 #!/bin/zsh local -A opthash zparseopts -D -A opthash -- -h