大佬教程收集整理的这篇文章主要介绍了bash – 在getopts之后使用shift $((OPTIND-1))的原因是什么?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
while getopts ":h:a:fc" opt; do case $opt in h) print_Help exit 0 ;; a) aaaa=${OPTARG} ;; f) force=1 ;; C) CLEAN=1 ;; \?) echoerr "Invalid option -$OPTARG" print_Help exit 1 ;; esac done shift $((OPTinD-1))
考虑一个带有用法的假设脚本
frobble [-f] [-c] [-a hostname] filename ...
上面的getopts循环负责解析-f,-c和-a(如果它们存在),但不会从参数列表中删除它们.这意味着要获取您的文件名参数,您需要找出处理了多少选项,并从那里继续处理.方便的是,getopts会告诉你第一个未处理的参数的索引:变量OPTinD.
而不是搞乱偏移和东西,你可以放弃处理过的选项,重新编号其余的参数,这样你的文件名总是1美元.
这就是$((OPTinD-1))的转变.
以上是大佬教程为你收集整理的bash – 在getopts之后使用shift $((OPTIND-1))的原因是什么?全部内容,希望文章能够帮你解决bash – 在getopts之后使用shift $((OPTIND-1))的原因是什么?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。