Linux 使用getopts命令获取命令行参数
来源:互联网 发布:电压力锅 知乎 编辑:程序博客网 时间:2024/06/04 19:26
Linux getopts命令用于获取命令行中的参数
调用格式:
getopts option_string variable
参数说明:
option_string 选项名称
variable 选项的值
选项之间使用冒号:分隔,也可以直接连接, : 表示选项后面有传值。
当getopts命令发现冒号后,会从命令行该选项后读取该值。如该值存在,将保存在特殊的变量OPTARG中。
当option_string用:开头,getopts会区分invalid option错误和miss option argument错误。
invalid option时, varname会被设成?
miss option argument时,varname会被设成:
如果option_string不用:开头,invalid option错误和miss option argument错误都会使varname被设成?。
getopts包含两个内置变量,OPTARG和OPTIND
OPTARG 保存选项后的参数值
OPTIND 表示命令行下一个选项或参数的索引
例子1,使用getopts命令获取参数
#!/bin/bashwhile getopts a:b:c:d opts; do case $opts in a) a=$OPTARG ;; b) b=$OPTARG ;; c) c=$OPTARG ;; d) d=$OPTARG ;; ?) ;; esacdoneecho "a=$a"echo "b=$b"echo "c=$c"echo "d=$d"exit 0
执行输出
./test.sh -a 1 -b 2 -c 3 -d 4a=1b=2c=3d=
option_string a:b:c:d
a,b,c后都有:,d后没有:
所以可以获取到a,b,c的值
例子2,option_string前加:
上例中,如果a,b,c任意一个没有传值,将会提示出错。例如 -c 不传值。
./test.sh -a 1 -b 2 -c./test.sh: option requires an argument -- ca=1b=2c=d=
我们在option_string前加上:,则可以屏蔽这个错误。
#!/bin/bashwhile getopts :a:b:c:d opts; do case $opts in a) a=$OPTARG ;; b) b=$OPTARG ;; c) c=$OPTARG ;; d) d=$OPTARG ;; ?) ;; esacdoneecho "a=$a"echo "b=$b"echo "c=$c"echo "d=$d"exit 0
执行输出
./test.sh -a 1 -b 2 -ca=1b=2c=d=
在option_string前加上:,可以屏蔽缺失传值的错误,但如果缺失的是前面选项的值,那么获取到的值将会错误。
例如缺失a的传值,命令会把-a后的-b作为了-a的值,导致错误。
./test.sh -a -b 2 -c 3a=-bb=c=d=
因此使用getopts命令时,对于没有传值的选项,选项名称也不要加入命令行中。
例如a不传值,则-a不要加入命令行。
./test.sh -b 2 -c 3a=b=2c=3d=
Linux的getopts命令并不支持多个字符组合的参数名称(longopts),如需要获取long opts参数,可以使用php的getopt方法实现,参考:《php cli模式下获取参数的方法》
- Linux 使用getopts命令获取命令行参数
- 使用getopts获取命令行参数
- linux getopts命令行参数处理
- 使用 getopts 处理命令行参数
- Linux shell getopts 获取参数
- Getopts获取shell脚本命令行参数
- Getopts获取shell脚本命令行参数
- getopts命令行参数处理
- getopts命令行参数处理
- getopts命令行参数处理
- getopts命令行参数处理
- getopts命令行参数处理
- getopts命令行参数处理
- getopts读取命令行参数
- linux getopts命令,处理shell脚本参数
- Linux getopts --处理命令行参数,并校验有效选项
- 格式化命令行参数getopt和getopts的使用
- linux getopts命令详解
- 非root用户使用docker
- 二叉树--将二叉搜索树转换成一个排序的双向链表
- 遇到的报错
- CVTE提前批笔试总结
- 在Ubuntu下给PyCharm创建快捷方式
- Linux 使用getopts命令获取命令行参数
- 进程与线程
- itoa函数和atoi函数的实现和用法
- npm基本用法
- C语言 指针应用-swap()
- OpenCV学习之显示图像
- 4、volley 官方教程-中标准请求的使用
- windows注册表结构
- JVM GC(垃圾回收)