当前位置: 首页 > wzjs >正文

上海企业信用信息公示系统官网台州seo公司

上海企业信用信息公示系统官网,台州seo公司,上海环球金融中心简介,网站标题 关键字怎么设置代码getopts 是一个在Bash和其他兼容的shell中用于解析命令行选项的内置命令,它可以让脚本方便地处理用户传入的各种选项和参数。 1. 基本语法 getopts optstring name [args]optstring:由合法选项字符组成的字符串。如果某个选项字符后面跟着一个冒号 :&a…

getopts 是一个在Bash和其他兼容的shell中用于解析命令行选项的内置命令,它可以让脚本方便地处理用户传入的各种选项和参数。

1. 基本语法

getopts optstring name [args]
  • optstring:由合法选项字符组成的字符串。如果某个选项字符后面跟着一个冒号 :,表示该选项需要一个参数;如果冒号在 optstring 开头,则表示开启错误抑制模式。
  • name:用于存储当前解析到的选项字符的变量名。
  • [args]:可选参数,指定要解析的参数列表。若省略,默认使用 $@(即脚本接收到的所有命令行参数)。

2. 返回值

  • getopts 执行成功时返回 0(表示真),意味着还有选项需要解析。
  • 当所有选项都解析完毕后,返回 1(表示假),用于终止循环。

3. 内置变量

  • OPTARG:当某个选项需要参数时,getopts 会将该参数赋值给 OPTARG 变量。
  • OPTIND:记录当前解析到的参数的索引位置。初始值为 1,每解析一个选项,OPTIND 就会递增。在处理完选项后,可以使用 shift $((OPTIND - 1)) 来跳过已解析的选项,使 $1 指向第一个非选项参数。
  • OPTERR:用于控制是否显示 getopts 的错误信息。默认值为 1,表示显示错误信息;若设置为 0,则不显示。

4. 选项字符规则

  • 无参数选项:在 optstring 中,单个字符表示该选项不需要参数。例如,"abc" 表示支持 -a-b-c 三个无参数选项。
  • 带参数选项:在 optstring 中,字符后面跟一个冒号 : 表示该选项需要一个参数。例如,"a:b" 表示 -a 选项需要一个参数,-b 选项不需要参数。
  • 选项组:多个选项可以连写,只要它们都是无参数选项。例如,对于 optstring"abc"-abc 等同于 -a -b -c

5. 错误处理

  • 无效选项:当用户输入的选项不在 optstring 中时,getopts 会将 name 变量设置为 ?,并默认输出错误信息。可以通过将 OPTERR 设置为 0 来抑制错误信息,然后在脚本中自行处理。
  • 缺少参数:当需要参数的选项没有提供参数时,getopts 在不同的shell环境下有不同的行为。在Bash中,如果 optstring 开头没有冒号,getopts 会将 name 变量设置为 ?,并输出错误信息;如果 optstring 开头有冒号,getopts 会将 name 变量设置为 :,表示缺少参数。

6. 示例代码及详细解释

#!/bin/bash# 抑制 getopts 的错误信息
OPTERR=0# 定义选项字符串,a 无参数,b 有参数
optstring=":a:b"while getopts "$optstring" opt; docase $opt ina)echo "选项 -a 已指定";;b)echo "选项 -b 已指定,参数为 $OPTARG";;\?)echo "无效的选项: -$OPTARG" >&2;;:)echo "选项 -$OPTARG 需要一个参数" >&2;;esac
done# 移动参数指针,跳过已解析的选项
shift $((OPTIND - 1))# 处理剩余的非选项参数
if [ $# -gt 0 ]; thenecho "剩余的非选项参数:"for arg in "$@"; doecho "  $arg"done
elseecho "没有剩余的非选项参数"
fi

代码解释

  1. OPTERR=0:将 OPTERR 设置为 0,抑制 getopts 的默认错误信息。
  2. optstring=":a:b"optstring 开头的冒号开启错误抑制模式,a 是无参数选项,b 是带参数选项。
  3. while getopts "$optstring" opt; do ... done:使用 while 循环调用 getopts 解析选项,直到所有选项都解析完毕。
  4. case $opt in ... esac:根据不同的选项字符执行不同的操作。
    • \?):处理无效选项,输出错误信息。
    • :):处理缺少参数的情况,输出错误信息。
  5. shift $((OPTIND - 1)):跳过已解析的选项,使 $1 指向第一个非选项参数。
  6. 处理剩余的非选项参数:使用 for 循环遍历剩余的非选项参数并输出。

7. 长选项处理

getopts 本身不支持长选项(如 --help),但可以通过一些技巧来模拟处理长选项。例如:

#!/bin/bashwhile [ $# -gt 0 ]; docase $1 in--help)echo "这是帮助信息";;--verbose)echo "启用详细模式";;*)break;;esacshift
done# 处理剩余的非选项参数
if [ $# -gt 0 ]; thenecho "剩余的非选项参数:"for arg in "$@"; doecho "  $arg"done
elseecho "没有剩余的非选项参数"
fi

8. 注意事项

  • 选项顺序getopts 会按顺序解析选项,遇到第一个非选项参数时停止解析。因此,非选项参数应放在选项之后。
  • 参数传递:带参数的选项和其参数之间可以有空格,也可以没有空格。例如,-b value-bvalue 都可以被正确解析。
http://www.dtcms.com/wzjs/277954.html

相关文章:

  • 做视频网站该把视频文件传到哪智慧教育
  • 北碚网站建设公司seo搜索引擎实训心得体会
  • 如何做好推广工作常德seo
  • 做快递网站难吗国际热点新闻
  • 网站建设下拉导航栏郑州百度seo
  • 网站备案主体负责人阳山网站seo
  • 承德建设局网站衡阳网站优化公司
  • 电商网站开发流程腾讯广点通
  • 经典创意营销案例免费seo视频教程
  • 企业做网站需要什么郑州做网站最好的公司
  • 海外如何淘宝网站建设原画培训班一般学费多少
  • 河南手机网站设计系统优化大师
  • 购物网站建设合同搜索引擎营销原理
  • 辽宁省建设工程信息网站自己如何注册一个网站
  • 网站开发工具js合肥seo服务商
  • 网站使用的主色调千博企业网站管理系统
  • 二手交易网站怎么做军事新闻最新24小时
  • 15年做哪个网站致富百度店铺
  • 上海做网站高端seo排名点击报价
  • 如何建设一个子网站淮安百度推广公司
  • 上海高端网站制作公司seo狂人
  • 买完域名后如何建设网站中央刚刚宣布大消息
  • 日本真人做爰直播网站手机网站建设价格
  • 广州移动 网站建设宁波seo费用
  • 网站建设呼和浩特怎么建立网站快捷方式
  • 来年做那个网站能致富网络推广人员是干什么的
  • 酒类网站建设全国疫情排行榜最新情况列表
  • 企业大型网站开发建站教程详解查关键词排名网
  • 怎么查看网站是否备案军事新闻今日最新消息
  • 品牌型网站建设解决方案湖北网站推广