首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我如何在Go中获取命令行参数,而不使用“flag”包?

我如何在Go中获取命令行参数,而不使用“flag”包?
EN

Stack Overflow用户
提问于 2009-11-11 23:05:47
回答 2查看 4.8K关注 0票数 19

我正在尝试为Go编写一个GNU风格的命令行解析器,因为flags包还不能处理所有这些问题:

代码语言:javascript
复制
program -aAtGc --long-option-1 argument-to-1 --long-option-2 -- real-argument

显然,我不想使用flags包,因为我正在尝试替换它。有没有其他方法可以到达命令行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-11 23:26:56

不要紧。

代码语言:javascript
复制
package main

import (
    "fmt"
    "os"
)

func main() {
    args := os.Args
    fmt.Printf("%d\n", len(args))

    for i := 0; i<len(args); i++ {
        fmt.Printf("%s\n", args[i])
    }
}

不过,文档相当不完整。

票数 44
EN

Stack Overflow用户

发布于 2021-02-02 16:20:39

os.Args的第一个参数是go文件的名称,因此要只获取命令行参数,您应该这样做

代码语言:javascript
复制
package main

import (
    "fmt"
    "os"
)

func main() {
    args := os.Args[1:]

    for i := 0; i<len(args); i++ {
        fmt.Println(args[i])
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1715761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档