码迷,mamicode.com
首页 > 系统相关 > 详细

shell处理命令行选项getopts

时间:2015-08-18 12:21:05      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:linux shell

getopts是shell的一个内置命令,通常用来处理shell命令行选项,但是不能直接处理长选项(如:--prefix=/home等)。

getopts有2个参数,第一个参数是字符串,包括字符和“:”,每一个字符都是一个有效的选项,如果字符后面带有“:”,表示这个字符有自己的参数。第二个参数用来存储获取的选项。

shell为getopts提供了2个内置变量:

    OPTARG:存储相应选项的参数;

    OPTIND:存储原始$*中下一个要处理选项的位置;

实例:

#!/bin/bash

echo $*
while getopts ":a:bc" opt    #第一个冒号表示忽略错误
do
        case $opt in
                a ) echo $OPTARG
                    echo $OPTIND;;
                b ) echo "b $OPTIND";;
                c ) echo "c $OPTIND";;
                ? ) echo "error"
                    exit 1;;
        esac
done
echo $OPTIND
shift $(($OPTIND - 1))
#通过shift $(($OPTIND - 1))的处理,$*中就只保留了除去选项内容的参数,可以在其后进行正常的shell编程处理了。
echo $0
echo $*

执行命令:./getopts.sh -a 11 -b -c
-a 11 -b -c
11
3
b 4
c 5
5
./getopts.sh


参考资料:

http://blog.csdn.net/li385805776/article/details/16981541

shell处理命令行选项getopts

标签:linux shell

原文地址:http://wangyongbin.blog.51cto.com/8964308/1685447

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!