Linux命令 Shell 的 getopts命令

,该工具较bash内置的getopts更强大,其不仅支持短参-s,还支持--longopt的长参数,甚至支持-longopt的简化参数。相较于getopts ,getopts 不但支持长短选项,其还支持选项和参数放在一起写。

一、getopt命令的用法

-a:使getopt长参数支持"-"符号打头,必须与-l同时使用

-l:后面接getopt支持长参数列表

-n program:如果getopt处理参数返回错误,会指出是谁处理的这个错误,这个在调用多个脚本时,很有用

-o:后面接短参数列表,这种用法与getopts类似

-u:不给参数列表加引号,默认是加引号的(不使用-u选项),例如在加不引号的时候 --longoption "arg1 arg2" ,只会取到"arg1",而不是完整的"arg1 arg2"

其有两种使用方法,如下

注意:如果getopt命令本身没有使用-o|--option选项的话,那么--后面的第一个参数被当做短选项。

使用eval 的目的是为了防止参数中有shell命令,被错误的扩展。

平时使用时,可以使用的样例为:

}

版权声明:本文为博主原创文章,未经博主允许不得转载。 /u/article/details/

getopt命令并不是bash的内建命令,它是由util-linux包提供的外部命令。

  • 如果某个参数中含有空格,那么这个参数就变成了多个参数。因此,基本上,如果参数中可能含有空格,那么必须用getopts(新版本的 getopt 也可以使用空格的参数,只是传参时,需要用 双引号 包起来)。
getopt 命令的选项说明:
-a 使getopt长选项支持"-"符号打头,必须与-l同时使用
-l 后面接getopt支持长选项列表
-n program如果getopt处理参数返回错误,会指出是谁处理的这个错误,这个在调用多个脚本时,很有用
-o 后面接短参数选项,这种用法与getopts类似,
选项的使用定义规则类似 getopts :
a 后没有冒号,表示没有可以参数
b 后跟一个冒号,表示有一个必要的参数
c 后跟两个冒号,表示有一个可选的参数(参数必须紧挨着选项)
长选项的定义相同,但用逗号分割。
#定义选项, -o 表示短选项 -a 表示支持长选项的简单模式(以 - 开头) -l 表示长选项 # a 后没有冒号,表示没有参数 # b 后跟一个冒号,表示有一个必要参数 # c 后跟两个冒号,表示有一个可选参数(可选参数必须紧贴选项) # -n 出错时的信息 # 在这里用做表示最后一个选项(用以判定 while 的结束) # $@ 从命令行取出参数列表(不能用用 $* 代替,因为 $* 将所有的参数解释成一个字符串 # 而 $@ 是一个参数数组) # 重新排列参数的顺序 # 使用eval 的目的是为了防止参数中有shell命令,被错误的扩展。 "") # 选项 c 带一个可选参数,如果没有指定就为空 #显示除选项外的参数(不包含选项的参数都会排到最后) # arg 是 getopt 内置的变量 , 里面的值,就是处理过之后的 $@(命令行传入的参数)
}

Linux Shell命令行及脚本编程实例详解

编辑推荐资深Linux系统管理与运维人员的经验总结,ChinaUnix技术社区鼎力推荐

  结合近700个应用示例,全面、系统地介绍了Shell(Bash)脚本编程的精华

  面向系统管理员,以及基于Linux系统的软件开发人员、测试人员及爱好者

  视频讲解:专门录制了11小时高清配套教学视频,并赠送15小时Shell编程入门视频

  内容全面:详解近50个Linux常用命令,并系统地介绍了Shell脚本编程的精华

  循序渐进:从最基本的Linux常用命令开始讲解,逐步深入到Linux Shell脚本编程

  讲解详细:配合实例对Shell脚本编程的概念、语法、命令、技巧和难点做了详细讲解

  实例丰富:列举了近700个应用示例,便于读者掌握各个知识点在实际环境中的应用

  经验传授:给出了大量的经验和技巧,尽力消除读者学习时会遇到的各种障碍

  Shell学习实战秘笈,CU论坛力荐,300个实例,2个项目案例,15小时配套教学视频,赠送35小时Linux入门视频及11小时Linux指令视频,送教学PPT。推荐阅读:《Linux典藏大系三本套装》,已上市  《Linux典藏大系:Linux Shell命令行及脚本编程实例详解》理论结合实践,全面、系统地介绍了 Linux Shell(Bash)脚本编程的语法、命令、技巧 等内容。《Linux典藏大系:Linux Shell命令行及脚本编程实例详解》偏重于实践教学,在讲解理论知识时, 通过一些典型实例让读者了解理论知识在实际环境中 的应用,并对易混淆和较难理解的知识点做了重点分 析,以加深读者对知识的理解。另外,作者专门为本 书录制了高清配套教学视频,以帮助读者高效学习, 同时也提供了《Linux典藏大系:Linux Shell命令行及脚本编程实例详解》实例源程序以方便读者学习。
  《Linux典藏大系:Linux Shell命令行及脚本编程实例详解》共15章,分为两篇。主要内容包括:Linux 及Linux Shell简介、初识Linux Shell、常用Shell (Bash)命令、Shell命令进阶、Shell编程基础、 Shell的条件执行、Bash循环、Shell函数、正则表达 式、脚本输入处理、Shell重定向、管道和过滤器、   《Linux典藏大系:Linux Shell命令行及脚本编程实例详解》使用了大量的实例详细地介绍了Bash的语法 及各种技巧,并以循序渐进的方式讲解了Linux Shell(Bash)的各种特性,让读者能够迅速上手, 并能学以致用。对于初次接触Linux Shell的读者, 《Linux典藏大系:Linux Shell命令行及脚本编程实例详解》是一本很好的自学教材;对于接触过Linux Shell的读者,《Linux典藏大系:Linux Shell命令行及脚本编程实例详解》可以作为进阶读物或随时查阅的 技术手册;另外,《Linux典藏大系:Linux Shell命令行及脚本编程实例详解》也可以作为高等学校相关专业 的教材和各类培训学校的教材。


  Shell命令进阶
  Shell编程基础
  Shell的条件执行

  刘艳涛,就职于一家全球500强的通信公司,从事公司无线产品研发中心的Linux/Unix操作系统的管理和技术支持。拥有近6年的Linux系统管理与运维经验。在使用Shell等脚本实现自动化管理方面有丰富的经验。擅长配置Nagios与Ganglia集成的自动化监控和故障报警平台。在结合研发环境对Linux系统性能调优方面有深入的研究。

.cn)上搜索到本书页面,按提示下载。也可到本书服务网站上的相关版块下载。

  您在阅读本书的过程中若有疑问,请发E-mail和我们联系。E-mail地址:。

}

我要回帖

更多关于 Linux命令 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信