我所看到的一切都使用getopt
或者稍微花哨一点的getopts
仅支持单字符选项(例如,-h
但不是--help
)。我想做一些花哨的长选择。
我做过类似的事情this http://blogger.ziesemer.com/2010/01/dyndns-update-client-shell-script.html:
_setArgs(){
while [ "${1:-}" != "" ]; do
case "$1" in
"-c" | "--configFile")
shift
configFile=$1
;;
"-f" | "--forceUpdate")
forceUpdate=true
;;
"-r" | "--forceRetry")
forceRetry=true
;;
esac
shift
done
}
正如您所看到的,这很好地支持单字符和较长的选项。它允许将值与每个参数相关联,就像下面的情况一样--configFile
。它也具有相当的可扩展性,对于可以配置哪些选项等没有人为限制。
如上所述,"${1:-}"
防止在 bash“严格”模式下运行时出现“未绑定变量”错误(set -euo pipefail
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)