getoptsを利用します。
getoptsの引数の後ろに:
をつけるとOPTARG変数にその値が保持されるので、-
の後ろにつけてロングオプションに対応します。
sample.sh
#!/bin/bash
help() {
echo help
}
version() {
echo version
}
while getopts ":vh-:" opt; do
case "$opt" in
-)
case "${OPTARG}" in
help)
help
;;
version)
version
;;
esac
;;
h)
help
;;
v)
version
;;
esac
done
実行
$ ./sample --help
help
$ ./sample -h
help
$ ./sample --version
version
$ ./sample -v
version
以下の記事を参考にさせていただきました。