String 如何读取外部变量

String 如何读取外部变量,string,go,var,String,Go,Var,我试图读取由--configFile=“”作为外部参数发送的变量,但始终未找到错误,即使我传递了绝对路径 变量: var ( c Config conf = c.getConf() app = kingpin.New("exporter", "Exporter for Prometheus.")

我试图读取由
--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
total 14152
-rw------- 1 root root     1334 Sep 25 20:47 config.yaml
-rwxrwxr-x 1 root root 14466568 Sep 25 22:03 exporter
配置:

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
total 14152
-rw------- 1 root root     1334 Sep 25 20:47 config.yaml
-rwxrwxr-x 1 root root 14466568 Sep 25 22:03 exporter
命令/输出:

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
total 14152
-rw------- 1 root root     1334 Sep 25 20:47 config.yaml
-rwxrwxr-x 1 root root 14466568 Sep 25 22:03 exporter
ls-ltr:

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
total 14152
-rw------- 1 root root     1334 Sep 25 20:47 config.yaml
-rwxrwxr-x 1 root root 14466568 Sep 25 22:03 exporter
在这里替换代码

与:

conf*Config
在这里替换代码

与:

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

但是当我添加静态变量时,例如:
yaml File,err:=ioutil.ReadFile(“/etc/exporter/config.yaml”)
。脚本成功地执行了!您的问题是主销没有解析。您必须调用
kingpin.MustParse
。您能提供一个示例吗?添加了说明。可能,但我没有读过。