在shell脚本中使用getopts处理参数

本文介绍如何使用getopts命令处理shell脚本中的带选项参数。getopts允许脚本开发者以更灵活的方式处理命令行输入,包括定义选项、参数及错误处理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在平常的脚本中有时候我们会使用参数,大部分我们都是使用yourscript.sh <option1> <option2> ,在脚本里就利用$1,$2来进行接收,那我们能不能像系统中其它脚本一样使用带有选项的参数呢? 哒哒哒,主角登场:getopts。

1、命令的格式

getopts option_string variable [arg...]

option_string:以冒号为分隔的选项

variable:将每次匹配成功的选项,保存在给variable(这个你可以随便取名,用在while循环中)

特殊的getopts变量

OPTIND:初始化为1, 每次getopts处理完一个命令行选项后,OPTIOND就增加为getopts要处理的下一个选项的序号

OPTARG:包含了对应variable的选项的参数的值

这里还要注意一下options-strings开始部分有与没有冒号的区别:

A、前面没有冒号:

会按照系统的定义报错

a. 指定了非法选项,即不存在的选项,会报错:scriptname: illegal option — p

b. 选项需要参数但没有指定,会报错:scriptname: : option requires an argument –

c. 不论是指定了错误的选项或者指定了带选项的参数没有指定参数,variable都设置为”?”,对应的OPTARG为出错的选项

B、选项前面有冒号,可以屏蔽这些错误信息,使用自己的反馈信息

a. 当指定的参数不存在时,variable设置为”:”,对应的$OPTARG为”对应的选项”

b. 指定的选项是带参数的而没有提供参数,variable设置为”?”,对应的$OPTARG为”这时候的选项”

可以根据这两个选项指定不同的反馈信息,也就是我们可以控制这些信息了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值