getopts
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了getopts相关的知识,希望对你有一定的参考价值。
一、getopts 简介
由于shell命令行的灵活性,自己编写代码判断时,复杂度会比较高。使用内部命令 getopts 可以很方便地处理命令行参数。一般格式为:
getopts “options” variable
getopts 的设计目标是在循环中运行,每次执行循环,getopts 就检查下一个命令行参数,并判断它是否合法。即检查参数是否以 - 开头,后面跟一个包含在 options 中的字母。如果是,就把匹配的选项字母存在指定的变量 variable 中,并返回退出状态0;如果 - 后面的字母没有包含在 options 中,就在 variable 中存入一个 ?,并返回退出状态0;如果命令行中已经没有参数,或者下一个参数不以 - 开头,就返回不为0的退出状态。
二、用法
getopts “a:b:” variable
有“:”时,表示选项带参数,无参数会报错
getopts内置变量
OPTARG:选项后的参数
OPTIND:选项索引,可以理解为命令后带的参数个数,以空白位为分隔符
三、例子
while getopts "a:b:" option;do
case $option in
a)
echo a
;;
b)
echo b
;;
esac
done
echo $1
echo $OPTIND
shift $[$OPTIND-1]
echo $1
此处shift将后面的参数移除,只剩最后一个,方便$1的使用。
以上是关于getopts的主要内容,如果未能解决你的问题,请参考以下文章