如何确保getopts的optstring仅以单个冒号开头?缺失则添加
处理getopts的optstring开头冒号问题
要确保getopts使用的optstring仅以单个冒号开头(开启静默错误处理模式),可以通过简单的条件判断自动补全开头的冒号:
# 初始化optstring示例 local optstring="sn:z:" # 检查并添加开头的冒号(仅当开头无冒号时执行) if [[ "$optstring" != ":"* ]]; then optstring=":$optstring" fi
说明
- 开头的冒号会让
getopts进入静默错误模式,遇到无效选项或缺少参数的情况时,不会自动输出系统错误信息,方便你自定义错误处理逻辑。 - 上述判断只会在optstring开头无冒号时添加冒号,避免重复添加导致格式错误(比如不会生成
::sn:z:这类无效格式)。
内容的提问来源于stack exchange,提问作者Dilna
相关产品推荐
相关产品推荐

