Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2623116
  • 博文数量: 323
  • 博客积分: 10211
  • 博客等级: 上将
  • 技术积分: 4934
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-27 14:56
文章分类

全部博文(323)

文章存档

2012年(5)

2011年(3)

2010年(6)

2009年(140)

2008年(169)

分类: Delphi

2012-06-04 21:50:15

getopts option_string variable
 
option_string中包含一个有效的单字符选项。若getopts命令在命令行中发现了连字符,那么它将用连字符后面的字符同option_string相比较。若有匹配,则把变量variable的值设为该选项。若无匹配,则variable设为?。当getopts发现连字符后面没有字符,会返回一个非零的状态值。Shell程序中可以利用getopts的返回值建立一个循环。有时侯选项中还带一个值,getopts命令同样也支持这一功能。这时需要在option_string中选项字母后加一个冒号。当getopts命令发现冒号后,会从命令行该选项后读取该值。若该值存在,那么将被存在一个特殊的变量OPTARG中。如果该值不存在,getopts命令将在OPTARG中存放一个问号,并且在标准错误输出上显示一条消息。
 
好,复习到这。直接看代码:
 
main()
{
[[ $# -eq 0 ]] && syntax && exit 0
while getopts l:v:fish c
do
        case "$c" in
                h)      syntax
                        exit 0
                        ;;
                l)     MACH=$OPTARG ;;
                f|i|s) FLAG=-$c ;;
                v)      path=$OPTARG;;
                *)
                        echo "[ERROR] command error"
                        syntax
                        exit 0
                        ;;
        esac
done
}
...
 
main "$@"
 
这是一个脚本的片段,假设该脚本名叫:mysh.sh。syntax是一个函数描述了mysh.sh的用法,这里不再列举。当直接敲mysh.sh不跟任何参数的时候,该脚本会直接列出使用该脚本的语法,如果带上参数getopts会将这些参数赋给变量c。注意其中的冒号,它代表从mysh.sh该选项后读取该值。若该值存在,那么将被存在一个特殊的变量OPTARG中。如果该值不存在,getopts命令将在OPTARG中存放一个问号。比如这里的参数l,它后面的值会直接赋给变量OPTARG。
 
阅读(2282) | 评论(0) | 转发(0) |
0

上一篇:ORACLE性能调整笔记

下一篇:没有了

给主人留下些什么吧!~~