shell中getops的用法_getopts命令_Linux getopts 命令用法详解:getopts是一个内置的命令行参数解析工具,利用它可以使你的脚本也支持参数解析...

getopts是一个内置的命令行参数解析工具,利用它可以使你的脚本也支持参数解析

用法: getopts optstring name [args]

optstring是选项

name 是放选项的变量

看下面的例子:

#!/usr/bin/env bash

# filename: getopts.sh

while getopts :abc:e:f:h argvs; do

case $argvs in

a) echo "这是执行-a的效果" ;;

b) echo "这是执行-b的效果" ;;

c) echo "这是执行-c的效果及参数值:${OPTARG}" ;;

e) echo "这是执行-e的效果及参数值: ${OPTARG}" ;;

h) echo "帮助信息"

f) echo "这是-f的效果及参数值 ${OPTARG}" ;;

[?]) echo "无效或不存在的选项" ;;

🙂 echo "选项缺少参数" ;;

esac

done

:abc:e:f:这部分是选项

第一个冒号 getopts 会区分 invalid option (无效选项) 错误和 miss option argument(丢失选项)错误。当为 invalid option 时 varname 会被设成?,$OPTARG是出问题的选项;当为 miss option argument 时 varname 会被设成:,$OPTARG 是出问题的选项,如果optstring不以”:“冒号开头,invalid option 错误和 miss option argument 错误都会使 varname 被设成?,$OPTARG是出问题的选项。

建议选项部分开头用":"

其中abc表示的是一个普通选项,可以不带参数值,而后面带冒号的选项如 (c:、e:、f:) 则必须要带参数值,像这样( -c xxoo、-e xxoo、-f xxoo ),参数值会放在一个隐藏的OPTARG变量中,选项会赋值给后面的argvs变量.

执行结果:

复制代码

[root@monitor tmp]# ./getopts.sh -a // 即变量argvs的值为a(删除了-)

这是执行-a的效果

[root@monitor tmp]# ./getopts.sh -b // 即变量argvs的值为b(删除了-)

这是执行-b的效果

[root@monitor tmp]# ./getopts.sh -ab // 组合执行,等同于 -a -b

这是执行-a的效果

这是执行-b的效果

root@monitor tmp]# ./getopts.sh -c "xxccoo" // 必须要加参数值

这是执行-c的效果及参数值:xxccoo

[root@monitor tmp]# ./getopts.sh -a -b -c "xxoo" -d "vvoo" # 多个参数执行

这是执行-a的效果

这是执行-b的效果

这是执行-c的效果及参数值:xxoo

这是执行-e的效果及参数值: vvoo

[root@monitor tmp]# ./getopts.sh -x # 如果参数不在选项里面,则argvs变量值为?

无效或不存在的选项

[root@monitor tmp]# ./getopts.sh -c # 如果需要带参数值的选项没有带参数值argvs变量值为:

选项缺少参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值