加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何使用Bash getopts内置的长选项?

发布时间:2020-12-15 19:17:42 所属栏目:安全 来源:网络整理
导读:我试图用Bash getopts来解析一个-temp选项。我打电话给我这样的脚本: ./myscript -temp /foo/bar/someFile 这是我用来解析选项的代码。 while getopts "temp:shots:o:" option; do case $option in temp) TMPDIR="$OPTARG" ;; shots) NUMSHOTS="$OPTARG" ;;
我试图用Bash getopts来解析一个-temp选项。我打电话给我这样的脚本:
./myscript -temp /foo/bar/someFile

这是我用来解析选项的代码。

while getopts "temp:shots:o:" option; do
    case $option in
        temp) TMPDIR="$OPTARG" ;;
        shots) NUMSHOTS="$OPTARG" ;;
        o) OUTFILE="$OPTARG" ;;
        *) usage ;;
    esac
done
shift $(($OPTIND - 1))

[ $# -lt 1 ] && usage
getopts只能解析短选项。

大多数系统还有一个外部getopt命令,但getopt不是标准的,并且通常被设计破坏,因为它不能安全地处理所有参数(带有空格和空参数的参数),只有GNU getopt可以安全地处理它们,但是只有您以GNU特定的方式使用它。

更简单的选择是既不使用,只需使用while循环迭代脚本的参数,并自行解析。

参见http://mywiki.wooledge.org/BashFAQ/035例子。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读