在编写 shell 脚本中,经常要处理一些输入参数。在使用过程中发现 getopts 更加方便,能够很好的处理用户输入的参数和参数值。
getopts 用于处理用户输入参数,举例说明使用方法:
while getopts ":b:a:r:" opt
do
case $opt in
b)
echo "base image : $OPTARG"
base=$OPTARG
;;
a)
echo "apps images : $OPTARG"
app=$OPTARG
;;
r)
echo "pkg name : $OPTARG"
pkg_name=$OPTARG
;;
?)
echo "-b base image -a app image -r pkg name. "
exit 0;;
esac
done
几个重要变量:
- opt: getopts 使用 opt 作为索引,来处理下一个需要处理的参数,记录当前的状态。
- OPTARG: 在上面的循环中,b,a, r 等参数后面各有一个冒号,冒号表示该输入的参数后面还有一个参数值,当 getopts 发现冒号后,会处理用户输入的参数值,这个参数值被保存在 OPTARG 中。
调用的实例
test.sh -b $base -a $app -r $pkgname