【问题标题】:Shell Script parameters [duplicate]Shell 脚本参数 [重复]
【发布时间】:2023-03-12 21:34:01
【问题描述】:

在shell脚本命令中解析参数然后验证的最好方法是什么?

例如bash someScript.sh -p <some_path> -o <some_other_param> -i (User forget to provide value)

如何解析所有这些参数,当用户忘记输入某些参数或该参数的值时显示一些错误消息并终止脚本的执行?

【问题讨论】:

标签: bash shell


【解决方案1】:

使用

这个网站上有很多例子,这里还有一个:

#!/usr/bin/env bash

p_set=false
o_set=false
i_set=false
while getopts p:o:i: OPT; do
    case "${OPT}" in
        p)
            p_set=true
            some_path=${OPTARG}
            ;;
        o)
            o_set=true
            some_other_param=${OPTARG}
            ;;
        i)
            i_set=true
            # Process ${OPTARG} or report error if it's not provided
            ;;
    esac
done

if ! $i_set ; then
    echo "-i must be provided"
fi

【讨论】:

  • 以及如何检查用户何时输入参数并忘记值?
  • 我在你评论的时候添加了那个细节。
  • 只有当用户输入-i(例如)作为您期望的选项时的最后一个参数时,才会发生这种情况。那么getopts会报错。
【解决方案2】:

搜索getopts 的手册页。你会很容易实现它。

【讨论】:

    【解决方案3】:

    当然,man 页面总是一个很好的资源。但是网上也有很好的例子。在处理getopts 时,我总是参考http://mywiki.wooledge.org/BashFAQ/035。几乎所有你想知道的都可以在这里找到。

    【讨论】:

      猜你喜欢
      • 2018-08-08
      • 1970-01-01
      • 2015-11-26
      • 2015-09-01
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      • 2013-11-09
      相关资源
      最近更新 更多