こちらExample of how to parse options with bash/getoptを参考にオプションのパースをしたのですが、出力が想像していたとおりに出力されません。
$DATANAME
に-d
オプションで値を入れたいのですが、値を定義していても無視されてしまいます。--mode
オプションの方は同じコードで動いているのですが…。
何が原因が分かりますでしょうか?
#!/bin/sh OPTS=`getopt -o uhadm: --long mode,data_name,add-data,update-data,help: -n 'parse-options' -- "$@"` if [ $? != 0 ] ; then echo "Failed parsing options." >&2 ; exit 1 ; fi DATANAME="_dafault" MODE="update" while true; do case "$1" in -h | --help ) echo "databak -m [update|add] -d [dataname]"; shift ;; -m | --mode ) MODE="$2"; shift ;; -d | --data_name ) DATANAME="$2"; shift; shift ;; -- ) shift; break ;; * ) break ;; esac done echo $DATANAME echo $MODE
出力
# tes -m add -d hoge _dafault add
想定していた出力
# tes -m add -d hoge hoge add
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。