{ "@context": "https://schema.org", "@type": "Article", "headline": "读取外部变量的方法", "datePublished": "2024-02-28T12:45:28", "dateModified": "2024-02-28T12:45:28", "description": "golang学习网今天将给大家带来《读取外部变量的方法》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!问题内容我试图读取由 --configfile= 作为外部参数发送的变量,但我总是收到未找到错误,即使我传递了绝对路径变量:var ( c config conf = c.ge", "publisher": { "@type": "Organization", "name": "Golang学习网", "url": "https://m.17golang.com" }, "mainEntityOfPage": { "@type": "WebPage", "@id": "https://m.17golang.com/article/102487.html" } }
登录
首页 >  Golang >  Go问答

读取外部变量的方法

来源:stackoverflow

时间:2024-02-28 12:45:28 209浏览 收藏

golang学习网今天将给大家带来《读取外部变量的方法》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我试图读取由 --configfile="" 作为外部参数发送的变量,但我总是收到未找到错误,即使我传递了绝对路径

变量:

var (
    c                          config
    conf                       = c.getconf()
    app                        = kingpin.new("exporter", "exporter for prometheus.")
    configfile                 = app.flag("configfile", "configuration file destination (/etc/exporter/config.yaml)").default("/etc/exporter/config.yaml").string()
)

配置:

func (c *config) getconf() *config {

    yamlfile, err := ioutil.readfile(string(*configfile))
    if err != nil {
        log.errorf("yamlfile.get err   #%v ", err)
    }
    err = yaml.unmarshal(yamlfile, c)
    if err != nil {
        log.errorf("unmarshal: %v", err)
    }
    return c
}

命令/输出:

server:/etc/exporter # ./exporter --configfile="/etc/exporter/config.yaml"
erro[0000] yamlfile.get err   #open : no such file or directory

ls -ltr:

total 14152
-rw------- 1 root root     1334 Sep 25 20:47 config.yaml
-rwxrwxr-x 1 root root 14466568 Sep 25 22:03 exporter

解决方案


将代码替换为 https://github.com/rafal-szypulka/itm_exporter/blob/master/main.go#L51

与:

conf *config

将代码替换为 https://github.com/rafal-szypulka/itm_exporter/blob/master/main.go#L354

与:

p := kingpin.MustParse(app.Parse(os.Args[1:]))
conf = c.getConf()
switch p {

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>